如何将发送到stdout的输出转换为字符串
How to get output sent to stdout onto a string
我有一个库提供的函数(所以我不能编辑它的源代码),它将输出打印到stdout。我希望在一个字符串变量中得到输出,这样我就可以检查它的一些条件。最好的方法是什么?我可以在没有多线程和文件I/O的情况下完成它吗?
[编辑]类似问题(在评论中指出):
使用多线程:
捕获派生进程的输出以字符串
如果您事先知道输出大小:
将stdout的输出重定向到字符串?
使用rdbuf。
std::stringstream stream;
auto * old = std::cout.rdbuf(stream.rdbuf());
CallFunction();
std::cout.rdbuf(old);
std::string value = stream.str();
相关文章:
- 通过构造函数方法输出的类到类类型转换是 5500 为什么不是 5555
- 在插入容器之前转换输出迭代器
- 字符数组到十六进制字符串的转换 - 意外输出
- 将ctypes c_void_p强制转换为c输出参数
- 使用递归函数 (c++) 将长字符串转换为整数时输出错误
- 输出使用 cout 转换为 ASCII 的文本时输出格式不正确,C++
- 输入 1024 后十进制到二进制转换的输出错误?
- 为什么 gcc 和 clang 各自为这个程序产生不同的输出?(转换运算符与构造函数)
- 有没有一种简单的方法可以将系统命令的输出转换为字符串
- 将Botan SHA256输出转换为base64,以匹配.NET SHA256 MALAGENG().computeHa
- 将ls输出转换为整数
- 将 LibSVM 输出转换为浮点数向量
- 使用x264将OpenGL输出转换为H264
- 如何将发送到stdout的输出转换为字符串
- 如何将Arduino的串行输出转换为插座输出(局域网)
- 将一个C程序的输出转换到另一个C程序的变量中
- c++输出转换错误
- 如何将 warn() 的输出转换为字符串?
- 如何将OpenCV的MatExpr的C包装器的指针输出转换回MatExpr。
- 在c++中将十六进制输出转换为十进制