共用方式為


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((const char *)_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 類別

iostream 程式設計

iostreams 慣例