将ostream复制到std :: string

时间:2012-07-20 11:43:00

标签: c++

我有一个曾经作为命令行运行的程序,因此其中有很多couts。我想知道是否有一种方法可以在类中创建一个ostream对象来调用该程序并使用类似

的方式初始化该程序构造函数
Import(ostream & text_out= std::cout):out(text_out)

并将我对cout的所有调用全部替换掉​​,从而切换输出的位置。

在每次函数调用结束时,我可以将ostream对象解压缩为字符串,并将其发送到我的MFC对象。

这意味着如果我可以将其作为命令行或MFC程序调用,我的基本代码会很好。这可能是我在错误的轨道上思考,但我很想知道这是否可行。

2 个答案:

答案 0 :(得分:4)

您可以使用ostringstream

std::ostringstream oss;
std::ostream &os = oss;
os << "Hello" << endl;

std::string str = oss.str(); // str == "Hello\n"

答案 1 :(得分:3)

您似乎在寻找std::ostringstream