0

我有一个 c++ 库,它提供了一个具有复杂逻辑的对象。到目前为止,许多对象std::cout在执行一个库命令时打印它们的输出。我想为此创建一个 Qt GUI(在文本小部件中输出它而不是控制台输出),因此std::cout必须进行更改以获得更灵活的东西。我已经将std::stringstream参数的引用传递给主对象(并将其传递给较低的对象)并将所有“std::cout <<”替换为“stream <<”(stream 是 std::stringstream)。

它不起作用,因为我失去了大部分输出。当我想从字符串流中获取它时,它非常小(只有几个字符)。如果我这样做,似乎stream << var1 << var2 << var3只有 var3 可用。

不知道如何解决这个问题。如果我将引用std::cout作为主要对象参数传递,那么在控制台下一切都会好起来的,但它不适用于 GUI 应用程序(我想我无法从 std::cout 获取输出)。

请告诉我我是否以不好的方式使用流字符串。或者让我知道是否有更好的方法来获取输出(使用其他东西而不是字符串流)。提前谢谢了。

4

1 回答 1

0

你可以使用 freopen("out.txt","w",stdout); 在您的程序开始时。

于 2013-01-27T03:31:16.650 回答