printf()vs qDebug()在QtCreator中执行的顺序

时间:2015-11-24 14:32:45

标签: c++ qt

给出以下电话:

printf ("Characters: %c %c \n", 'a', 65);    
qDebug() << "adcasd";

为什么我在QtCreator应用程序输出中看到以下(反向)输出?

adcasd
Characters: a A

2 个答案:

答案 0 :(得分:5)

printf()直接写入stdout并在每次遇到换行符时刷新。 qDebug()写入调试器。 Qt Creator在同一个窗口中显示(但通常是不同的颜色),但它们是两个不同的流。因此,输出的顺序可能会混淆一点。

答案 1 :(得分:1)

如果可以检测到

fflush(stdout);仅引用交互式设备,则会自动使用新行刷新<printf。我不确定这里是什么情况,但您可以尝试使用angular-mocks.js命令行后onPrepare()显式刷新。