将ostream复制到std::字符串

Copying an ostream to a std::string

本文关键字:字符串 std ostream 复制      更新时间:2023-10-16

我有一个程序曾经作为命令行运行,因此其中有很多couts。我想知道是否有一种方法可以在调用该程序的类中创建一个ostream对象,并用之类的东西初始化该程序的构造函数

Import(ostream & text_out= std::cout):out(text_out)

并将我对cout的所有调用替换为out,从而切换输出的位置。

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

这意味着,如果我能让我的基本代码发挥作用,那么如果以命令行或MFC程序的形式调用它,我的基础代码就会很好。这可能是我走错了路,但我很好奇这是否可能。

您可以使用ostringstream:

std::ostringstream oss;
std::ostream &os = oss;
os << "Hello" << endl;
std::string str = oss.str(); // str == "Hellon"

您似乎在寻找std::ostringstream