2016-03-14 51 views
0

有了这个代码为什么在关闭Qt C++主窗口后打印消息?

#include "mainwindow.h" 
#include <QApplication> 
#include <iostream> 
#include <QDir> 
#include <QTextStream> 

int main(int argc, char *argv[]){ 
    QApplication a(argc, argv); 

    QTextStream out(stdout); 
    out << QDir::currentPath(); 
    std::cout << "Why is that?"; 

    MainWindow mainWindow; 
    mainWindow.show(); 
    return a.exec(); 
} 

印刷两个消息都合我的应用程序的主窗口之后,只有,这是为什么? 我试图调试,调试器认为他完成了这一行,但我看不到任何消息。

+2

冲洗流。 –

+1

或输出到std :: err,那里应该没有缓冲。 –

回答

2

extern std::ostream cout;被缓冲,因此它可以选择何时刷新其缓冲区stdout。在你的情况下,它是在你的程序终止时执行的。

你可以告诉std::ostream使用std ::冲洗冲洗,因为这样的:

std::cout << "Why is that?" << std::flush; 
相关问题