使用Qt Creator从键盘输入双变量后跳过QString变量输入

问题描述 投票:0回答:1

我正在尝试从键盘输入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,但是感觉有点多余,我可以让程序工作吗?

在输入双变量后,为什么会跳过供应商输入?

c++ qt-creator
1个回答
0
投票

cin >> price;之后你需要另一个cin.readLine();,因为读取浮点数直到行尾才能读取:

[...]
cout << "Enter product price: ";
cout.flush();
cin >> price;
cin.readLine();
[...]
© www.soinside.com 2019 - 2024. All rights reserved.