[解決]
ostreamをとるパラメータにstringstreamを渡すことができます。その後、str()関数によって文字列ストリーム内に設定されたテキストを取得できます。
#include <sstream>
...
{
stringstream ss;
print(ss);
string text;
text = ss.str();
// Handle text
}
このような関数があるとすると:
void print(ostream& stream) const;
ostreamに書き込まれたデータにアクセスするにはどうすればよいですか?
私はそれを文字列として解釈することを考えていました:
string text;
print( text );
// Interpret text
その理由は、パラメーターとしてオブジェクトへのポインターを持つ別の関数があるためです。
void append( *Data data );
そして、データを取得するには、データオブジェクトのprintメソッドを使用する必要があります。
// This is a public function in the Data class
void append( *Data data ) {
string text;
data->print( text );
// append data to this Data object
}
ストリングストリームにキャストしようとしましたが、うまくいきませんでした。データをファイルに保存して、回避策として読み取ることができるかどうかを考えています。