若要檢視英文版的文章,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文
建議使用 Visual Studio 2017

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

顯示: