strstreambuf::strstreambuf

构造对象类型 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),然后 Ncount

  • 如果 (_Count ==0),然后 Nstrlen(constchar *)_Getptr )。

  • 如果(_Count < 0),然后 NINT_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

请参见

参考

strstreambuf Class

iostream编程

(mfc)约定