如何将输出发送到stdout到字符串

时间:2015-11-13 20:22:23

标签: c++ c

我有一个库提供的功能(因此我无法编辑它的源代码),它将输出打印到stdout。我希望在字符串变量中获得该输出,以便我可以检查它的一些条件。做这个的最好方式是什么?我可以在没有多线程和文件I / O的情况下完成吗?

[编辑]类似的问题(在评论中指出):

使用多线程:

Capture Output of Spawned Process to string

如果您事先知道输出尺寸:

redirect output from stdout to a string?

1 个答案:

答案 0 :(得分:1)

使用rdbuf。

std::stringstream stream;
auto * old = std::cout.rdbuf(stream.rdbuf());
CallFunction();
std::cout.rdbuf(old);
std::string value = stream.str();