共用方式為


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 程式設計

iostreams 慣例