次の方法で共有


basic_stringbuf::str

セットは書き込みの位置を変更せずに、文字列バッファー内のテキストを取得します。

basic_string<Elem, Tr, Alloc> str( ) const;
void str(
    const basic_string<Elem, Tr, Alloc>& _Newstr
);

パラメーター

  • _Newstr
    新しい文字列を返します。

戻り値

クラス basic_string<ElemTr、被制御シーケンスが *thisによって制御されるシーケンスのコピーである Alloc**>,** のオブジェクトを返します。

解説

一つ目のメンバー関数は、クラスの basic_string<ElemTr、被制御シーケンスが *thisによって制御されるシーケンスのコピーである Allocのオブジェクトを > 返します。コピーするシーケンスは、格納されている stringbuf のモードによって決まります:

  • mode&ios;base::out が非ゼロで、出力バッファーがある場合は、シーケンス全体の出力バッファー (epptr。 -pbase以降pbase の要素)。

  • mode&ios;base::in が非ゼロで、入力バッファーがある場合は、シーケンス全体の合計です (egptr -eback以降eback の要素)。

  • それ以外の場合、コピーするシーケンスは空です。

2 番目のメンバー関数は、現在 *thisによって制御されるシーケンスを解放します。次に、_Newstrによって制御されるシーケンスのコピーを割り当てます。mode&ios;base::in がゼロ以外の場合は、シーケンスの先頭に読み取りを開始するに入力バッファーを設定します。mode&ios;base::out がゼロ以外の場合は、シーケンスの先頭に書き込みを開始する出力バッファーを設定します。

使用例

// basic_stringbuf_str.cpp
// compile with: /EHsc
#include <iostream>
#include <sstream>

using namespace std;

int main( ) 
{
   basic_string<char> i( "test" );
   stringstream ss;
   
   ss.rdbuf( )->str( i );
   cout << ss.str( ) << endl;

   ss << "z";
   cout << ss.str( ) << endl;
      
   ss.rdbuf( )->str( "be" );
   cout << ss.str( ) << endl;
}
  

必要条件

ヘッダー: <sstream>

名前空間: std

参照

関連項目

basic_stringbuf Class

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

入出力ストリームの規則