0
[SOLUTION]如何從ostream讀取輸出?
您可以將一個stringstream傳遞給需要一個ostream的參數。之後,您可以通過str()函數獲取在stringstream中設置的文本。
#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);
而且我必須使用數據對象的打印方法來獲取其數據:
// This is a public function in the Data class
void append(*Data data) {
string text;
data->print(text);
// append data to this Data object
}
我試圖將其轉換爲字符串令人振奮,但沒有奏效。我在考慮是否可以將數據保存到文件中,然後將其作爲解決方法讀取。
嗯,它不會吐出任何錯誤,但我怎麼能將ostringstream轉換爲字符串? <<操作符不起作用。 ostringstreams str成員以及get或getline()的任何組合都不是。 – user1356190 2012-04-25 16:24:32
@ user1356190:你是如何試圖使用'str()'成員函數的?將工作ala'std :: cout << text.str()<<'\ n';' – 2012-04-26 02:22:48
哦,我沒有意識到它有一個str()_function_!看鏈接[鏈接] http://www.cplusplus.com/reference/iostream/ostream/它沒有說任何地方。無論如何,我傳遞了一個stringstream作爲ostream的參數,然後我將它轉換爲一個帶有「text = ss.str()」的字符串。它完美的工作,謝謝你! – user1356190 2012-04-26 08:28:09