我有一个库提供的功能(因此我无法编辑它的源代码),它将输出打印到stdout。我希望在字符串变量中获得该输出,以便我可以检查它的一些条件。做这个的最好方式是什么?我可以在没有多线程和文件I / O的情况下完成吗?
[编辑]类似的问题(在评论中指出):
使用多线程:
Capture Output of Spawned Process to string
如果您事先知道输出尺寸:
答案 0 :(得分:1)
使用rdbuf。
std::stringstream stream;
auto * old = std::cout.rdbuf(stream.rdbuf());
CallFunction();
std::cout.rdbuf(old);
std::string value = stream.str();