2011-05-27 82 views
2

我特別需要將ostream轉換爲字符串。更精確地說,我有一個函數:將ostream轉換爲字符串(不是流)

ostream& f(ostream& out); 

(該功能主要用於< <運營商的多態過充) 在這種情況下,我需要的是在ostream的到字符串。經過一番研究,我試過了:

stringstream test; 
ofstream tmp; 
test << f(tmp); 
string foo(test.str()); 

但是字符串只包含0。 有沒有人有這個解決方案?

謝謝

+0

我不明白你所說的「什麼是在ostream的」是什麼意思 - 一個ostream是輸出流的抽象 - 你的意思是在某個特定點緩衝區中有什麼? – 2011-05-27 14:37:42

回答

0

嘗試使用ostringstream類代替ofstream

ostringstream test; 
test << f(test); 
string foo(test.str()); 
+0

非常感謝您的快速和準確;有一個延續問題:訂單如何工作? – 2011-05-27 14:58:46

+0

哪個訂單?你是指語句執行順序? – Raiv 2011-05-27 15:00:50

+0

我的意思是:如果你寫:test << string << f(test)或test << f(test)<< string;它給出了同樣的事情是正常的? – 2011-05-27 15:04:38