当我尝试从Qt控制台应用程序获取输入时,程序无法正常工作。以下按预期工作:
#include <QCoreApplication>
#include <QTextStream>
QTextStream cout(stdout);
QTextStream cin(stdin);
int main()
{
QString msg("Hello world!");
cout << msg << endl;
return 0;
}
输出:
Hello world!
但是,只要我添加,
...
int main()
{
QString msg("Hello world!");
cout << msg << endl;
cout << "Enter new message: ";
msg = cin.readLine();
cout << endl << msg << endl;
return 0;
}
输出:
Hello world!
显示但程序在显示输入文本的提示之前等待输入,而不是先显示提示然后再读取输入。输入的文本与输入时的提示一起显示(之后)。
我一直试图解决这个问题几个小时无济于事。
答案 0 :(得分:3)
答案 1 :(得分:1)
您也可以使用:
cout << "Enter new message: " << flush;
std::flush
只需刷新stdout
信息流。std::endl
除了向stdout
添加新行外,它还会刷新流。