我有一个曾经作为命令行运行的程序,因此其中有很多couts
。我想知道是否有一种方法可以在类中创建一个ostream
对象来调用该程序并使用类似
Import(ostream & text_out= std::cout):out(text_out)
并将我对cout
的所有调用全部替换掉,从而切换输出的位置。
在每次函数调用结束时,我可以将ostream
对象解压缩为字符串,并将其发送到我的MFC对象。
这意味着如果我可以将其作为命令行或MFC程序调用,我的基本代码会很好。这可能是我在错误的轨道上思考,但我很想知道这是否可行。
答案 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
。