使用C ++从控制台应用程序收集stdout输出

时间:2013-03-14 20:28:41

标签: c++ winapi console-application stdout

我有一个用C ++编写的控制台应用程序。有没有办法从它收集所有stdout输出到字符串/管道/内存数组?

PS。我需要在我需要从中收集stdout的控制台应用程序中执行此操作。或者,换句话说,它是从自己收集的。

1 个答案:

答案 0 :(得分:3)

是。要将其重定向到string,您可以使用std::stringstream

std::stringstream buffer;
std::streambuf * old = std::cout.rdbuf(buffer.rdbuf());

然后,如果你这样做:

std::cout << "Example output" << std::endl;
std::string text = buffer.str();

您会看到text现在包含"Example output\n"