0

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

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

4

1 回答 1

3

是的。要将其重定向到 a string,您可以使用 astd::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".

于 2013-03-14T20:37:16.103 回答