繁体   English   中英

为什么在Qt C ++中关闭主窗口后打印消息?

[英]Why messages printed after closing main window in 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();
}

这两个消息仅在关闭我的应用程序的主窗口后才打印,这是为什么? 我尝试调试,调试器认为他已经完成了这一行,但是我没有看到任何消息。

extern std::ostream cout; 是缓冲的,因此它可以选择何时将其缓冲区刷新到stdout 就您而言,它是在程序终止时执行的。

您可以告诉std::ostream使用std :: flush进行刷新,如下所示:

std::cout << "Why is that?" << std::flush;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM