2011-05-27 84 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