在Qt6中,cin/getline不会为我读取任何输入



我只是从QT6开始(通常是从QT开始(。

我试过做一些简单的手术,但已经很麻烦了。不知怎的,cin不读一行,getline也不读。

这是我的代码:

#include <QCoreApplication>
#include <iostream>
#include <string>
using namespace std;
void do_something()
{
string name = "";
cout << "Enter your name: n";
cin >> name;
cout << "Hello " << name << "n";
return;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
do_something();
return a.exec();
}

线";输入您的姓名:"get已经写好了,换行符没有!?然后,无论我在控制台中键入什么,都不会对cin做任何事情,而且程序是,因为它似乎卡在了cin中。

如果不是";\n〃;我使用";endl";对于";\n〃;在第二个cout中,会发生以下情况。Cin完全被忽视;你好"也会被打印出来。

正如评论中所写,解决方案是:

  1. 在终端中运行程序,而不是在QT创建者的输出终端中运行。在输出终端中,您不能键入任何输入。

  2. 刷新缓冲区,因为文本位于缓冲区中,直到出现endl或刷新。

最新更新