[英]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.