我有一个用C ++编写的控制台应用程序。有没有办法从它收集所有stdout
输出到字符串/管道/内存数组?
PS。我需要在我需要从中收集stdout
的控制台应用程序中执行此操作。或者,换句话说,它是从自己收集的。
答案 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"
。