文法:
#include <sstream> stringstream(); explicit stringstream( ios_base::openmode モード ); stringstream( const string& s, ios_base::openmode モード ); ostringstream(); explicit ostringstream( ios_base::openmode モード ); ostringstream( const string& s, ios_base::openmode モード ); istringstream(); explicit istringstream( ios_base::openmode モード ); istringstream( const string& s, ios_base::openmode モード );
stringstream, ostringstream, istringstreamオブジェクトは、文字列に対する入出力に使用されます。これらのオブジェクトは、fstream, ofstream, ifstreamオブジェクトと同じように動作します。
オプションのモードパラメータにI/Oストリームモードフラグを渡すことで、どのようにファイルを開くのかを設定することができます。
ostringstreamオブジェクトは、標準Cライブラリのsprintfと同じように、文字列に書き込む目的で使用することができます。
サンプル:
ostringstream s1; int i = 22; s1 << "Hello " << i << endl; string s2 = s1.str(); cout << s2;
istringstreamオブジェクトは、標準Cライブラリのsscanf関数と同じように、文字列からデータを読み込むのに使用できます。
サンプル:
istringstream stream1; string string1 = "25"; stream1.str(string1); int i; stream1 >> i; cout << i << endl; // 25が表示されます
次のサンプルのように、istringstreamコンストラクタに入力文字列を指定することもできます:
string string1 = "25"; istringstream stream1(string1); int i; stream1 >> i; cout << i << endl; // 25が表示されます
stringstreamオブジェクトはfstreamのように、入出力の両方に使用することができます。
関連トピック: C++ I/O ストリーム