构造对象类型 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),然后 N 是 count。
如果 (_Count ==0),然后 N 是 strlen(constchar *)_Getptr )。
如果(_Count < 0),然后 N 是 INT_MAX。
如果 _Putptr 是null指针,函数来执行建立一个输入缓冲区:
setg(_Getptr, _Getptr, _Getptr + N);
否则,它通过执行建立输入和输出:
setg(_Getptr, _Getptr, _Putptr);
setp(_Putptr, _Getptr + N);
在这种情况下,_Putptr 必须在[_Getptr、_Getptr + N]。
最后,三个构造函数:
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