C++捕获输出流
C++ catch output stream
我有一个 c++ 库,它提供了一个具有复杂逻辑的对象。到目前为止,许多对象在执行单个库命令时将其输出打印到std::cout
。我想为此创建一个Qt GUI(将其输出到文本小部件而不是控制台输出中),因此必须对其进行std::cout
更改以使其更灵活。我已经将对std::stringstream
参数的引用传递给主对象(并将其传递给较低的对象),并将所有"std::cout <<"替换为"stream <<"(stream is std::stringstream)。
它不起作用,因为我丢失了大部分输出。当我想从字符串流中获取它时,它小得离谱(只有几个字符)。似乎如果我这样做stream << var1 << var2 << var3
只有var3可用。
不知道如何解决这个问题。如果我传递对 std::cout
的引用作为主要对象参数,则在控制台下一切都会好起来的,但它不适用于 GUI 应用程序(我想我无法从 std::cout 获取输出)。
请告诉我我是否以不好的方式使用流字符串。或者让我知道是否有更好的方法来获取输出(使用其他方法而不是字符串流)。提前非常感谢。
你可以在
程序开始时使用 freopen("out.txt","w",stdout)。
相关文章:
- 如何在C++中编写 ostream 的向量,它接收所有不同的输出流,如 cout、ostringstream 和 ofs
- 在输出流中插入换行符
- 在类外部重载输入和输出流
- 通用容器的输出流
- 我的动态链接队列在同一输出流中调用时不正确地输出三个返回函数
- 使输出流式处理运算符适用于 boost::variant<std::vector<int>、int、double 的正确方法是什么>
- 获取C++输出流中元素的大小
- 用于了解输入和输出流缓冲区实际工作方式的程序
- 控制多线程程序中的输出流
- 为什么输出流首选" "而不是""?
- C++ 输出流运算符 <<() 中的字符何时加宽?
- 音频缓冲区列表,用于输出流格式已压缩的 AUHAL 单元
- 如何将值发送到标准输出流并在另一个程序中访问这些值
- 我必须如何将OpenCV输出流到我自己的远程C GUI
- 如何为提升日志和自定义类型定义输出流运算符
- 修改视频帧并将其发送回视频输出流
- 组合输入和输出流
- C++ 中的递增/递减和输出流运算符优先级
- C++输出流到文件不起作用
- 输出流中的运算符优先级C++