次の方法で共有


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 をとして推奨される最初の割り当てサイズ受け取ります。

2 つ目のコンストラクターは、1 番目のため、そのメモリを解放するために関数呼び出しにはポインターとして格納と _Freefunc を割り当てるにただし、関数にポインターとして呼び出されるように _Allocfunc を格納します。

3 人のコンストラクター:

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);

また、1 番目のようにします。ただし、_Getptr は、被制御シーケンスを格納するために使用される配列オブジェクトを示します。(したがって、これは null ポインターである必要があります)。配列の要素数の N は次のように決定されます:

  • (_Count > 0)、N がcountの場合は。

  • (場合_Count == 0)、N はstrlenです (**[const]**char (*) _Getptr )。

  • (_Count < 0)、N がINT_MAXの場合は。

_Putptr が null ポインターの場合、実行によって、入力バッファーを作成します:

setg(_Getptr, _Getptr, _Getptr + N);

それ以外の場合は、実装によって入出力バッファーの両方を設定します:

setg(_Getptr, _Getptr, _Putptr);
setp(_Putptr, _Getptr + N);

この場合、_Putptr 間隔は、_Getptr + N_Getptr[入力] に配置する必要があります。

最後に、二つのコンストラクター: 3

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

入出力ストリームのプログラミング

入出力ストリームの規則