0

[解決]

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
}

ストリングストリームにキャストしようとしましたが、うまくいきませんでした。データをファイルに保存して、回避策として読み取ることができるかどうかを考えています。

4

1 に答える 1

3

これの代わりに...

string text;
print( text ); 

...これを試して...

ostringstream text;
print( text ); 

すると「テキスト」に書かれたテキストが使えるようになります。

于 2012-04-25T12:50:52.753 に答える