basic_stringbuf::str
セットは書き込みの位置を変更せずに、文字列バッファー内のテキストを取得します。
basic_string<Elem, Tr, Alloc> str( ) const;
void str(
const basic_string<Elem, Tr, Alloc>& _Newstr
);
パラメーター
- _Newstr
新しい文字列を返します。
戻り値
クラス basic_string<Elem、Tr、被制御シーケンスが *thisによって制御されるシーケンスのコピーである Alloc**>,** のオブジェクトを返します。
解説
一つ目のメンバー関数は、クラスの basic_string<Elem、Tr、被制御シーケンスが *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