在 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”也被打印出来。
解决方案如评论中所写:
运行 终端中的程序,而不是 QT Creator 的输出终端中的程序。
在 output 终端中你不能输入任何内容。
刷新缓冲区,因为文本位于缓冲区中,直到发生 endl 或刷新。
我刚开始使用 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”也被打印出来。
解决方案如评论中所写:
运行 终端中的程序,而不是 QT Creator 的输出终端中的程序。 在 output 终端中你不能输入任何内容。
刷新缓冲区,因为文本位于缓冲区中,直到发生 endl 或刷新。