我正在尝试从键盘输入QStrings和Doubles / Floats但是在我从键盘输入Double变量后,程序将跳过下一个QString输入。有什么问题?
我的节目:
#include <QCoreApplication>
#include <QTextStream>
QTextStream cout(stdout);
QTextStream cin(stdin);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString name, supplier;
float price;
char answer;
cout << "Enter product name: ";
cout.flush();
name = cin.readLine();
cout << "Enter product price: ";
cout.flush();
cin >> price;
cout << "Enter product supplier: ";
cout.flush();
supplier = cin.readLine();
cout << "Is the supplier the manufacturer? (Y/N): ";
cout.flush();
cin >> answer;
cout << name << "-" << price << "-" << supplier << "-" << answer <<endl;
return a.exec();
}
如果我将价格作为QString输入然后将其转换为double,但是感觉有点多余,我可以让程序工作吗?
在输入双变量后,为什么会跳过供应商输入?
在cin >> price;
之后你需要另一个cin.readLine();
,因为读取浮点数直到行尾才能读取:
[...]
cout << "Enter product price: ";
cout.flush();
cin >> price;
cin.readLine();
[...]