构造 strstreambuf 类型的对象。
explicit strstreambuf(
streamsize _Count = 0
);
strstreambuf(
void ( *_Allocfunc )( size_t ),
void ( *_Freefunc )( void * )
);
strstreambuf(
char *_Getptr,
streamsize _Count,
char *_Putptr = 0
);
strstreambuf(
signed char *_Getptr,
streamsize _Count,
signed char *_Putptr = 0
);
strstreambuf(
unsigned char *_Getptr,
streamsize _Count,
unsigned char *_Putptr = 0
);
strstreambuf(
const char *_Getptr,
streamsize _Count
);
strstreambuf(
const signed char *_Getptr,
streamsize _Count
);
strstreambuf(
const unsigned char *_Getptr,
streamsize _Count
);
参数
_Allocfunc
用于的函数分配缓冲存储区。_Count
定位缓冲区的长度由 _Getptr指向的。 如果 _Getptr 不为参数 (第一窗体构造函数),则缓冲区的已分配大小的建议。_Freefunc
用于的函数释放内存缓冲。_Getptr
用于项的缓冲区。_Putptr
用于输出的缓冲区。
备注
第一构造函数控制输入存储在缓冲区、输出缓冲区和 strstreambuf 分配的所有指针的 null 指针。 它存储设置的 strstreambuf 模式使控制可修改序列和可扩展的。 它还接受 _Count,一种建议的初始分配大小。
第二个构造函数行为与第一,除此之外,它存储_Allocfunc 作为指向函数调用分配存储空间和_Freefunc 作为指针到函数到调用释放该存储空间。
三个构造函数:
strstreambuf(char *_Getptr, streamsize count,
char *putptr = 0);
strstreambuf(signed char *_Getptr, streamsize count,
signed char *putptr = 0);
strstreambuf(unsigned char *_Getptr, streamsize count,
unsigned char *putptr = 0);
还要的行为像第一,除此之外,_Getptr 指定用于的数组对象保持控制序列。(因此,不能为 null 指针。)N 的 数目确定元素数组中如下所示:
如果 (_Count > 0),然后 跳过 为 count。
如果 (_Count ==0) N,然后是 strlen(char )_Getptr (const *)。
如果 (_Count < 0),然后 跳过 为 INT_MAX。
如果 _Putptr 为 null 指针,函数通过建立一个输入缓冲区:
setg(_Getptr, _Getptr, _Getptr + N);
否则,其通过建立输入和输出缓冲区:
setg(_Getptr, _Getptr, _Putptr);
setp(_Putptr, _Getptr + N);
在这种情况下,必须在 _Putptr [_Getptr_Getptr ]、+ "。
最后,这个构造函数:
strstreambuf(const char *_Getptr, streamsize _Count);
strstreambuf(const signed char *_Getptr, streamsize _Count);
strstreambuf(const unsigned char *_Getptr, streamsize _Count);
任何相同的行为如下:
streambuf( (char *)_Getptr, _Count );
存储的模式,但不会使控制可修改序列和可扩展的。
要求
页眉: <strstream>
命名空间: std