在 Qt6 cin/getline 中没有为我读取任何输入

In Qt6 cin/getline does not read any input for me

我刚开始使用 QT6(以及一般的 QT)。

我试过简单的cin/cout操作,已经很麻烦了。 不知怎么的,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();
}

“Enter your name:”这一行写好了,没有换行符!? 然后无论我在控制台中输入什么,都不会对 cin 做任何事情,而且程序似乎卡在了 cin 中。

如果我在第二个 cout 中使用“endl”代替“\n”作为“\n”,则会发生以下情况。 Cin 被完全忽略,“Hello”也被打印出来。

解决方案如评论中所写:

  1. 运行 终端中的程序,而不是 QT Creator 的输出终端中的程序。 在 output 终端中你不能输入任何内容。

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