C ++ catch输出流

时间:2013-01-27 01:56:24

标签: c++ output stringstream

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

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

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

请告诉我,我是否以糟糕的方式使用streamtring。或者让我知道是否有更好的方法来获取输出(使用其他东西而不是stringstream)。非常感谢提前。

1 个答案:

答案 0 :(得分:0)

你可以使用freopen(“out.txt”,“w”,stdout);在你的课程开始时。