为什么在 Qt C++ 中关闭 main window 后打印消息?
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();
}
只有在关闭我的应用程序的 Main Window 后才打印这两条消息,这是为什么?
我尝试调试,调试器认为他已经完成了这一行,但我没有看到任何消息。
extern std::ostream cout;
已缓冲,因此它可以选择何时将缓冲区刷新到 stdout
。在您的情况下,它是在您的程序终止时执行的。
您可以使用 std::flush 告诉 std::ostream
刷新,例如:
std::cout << "Why is that?" << std::flush;
使用此代码
#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();
}
只有在关闭我的应用程序的 Main Window 后才打印这两条消息,这是为什么? 我尝试调试,调试器认为他已经完成了这一行,但我没有看到任何消息。
extern std::ostream cout;
已缓冲,因此它可以选择何时将缓冲区刷新到 stdout
。在您的情况下,它是在您的程序终止时执行的。
您可以使用 std::flush 告诉 std::ostream
刷新,例如:
std::cout << "Why is that?" << std::flush;