0

我知道这样做很糟糕:

QTextStream cin(stdin);
QString choice = cin.readLine();
if (choice == "yes" || choice == "y") {...

我想在它出现在 cmdline 的地方执行它:

Accept quest? (y/n) 
y

在哪里:

  1. y 默认显示
  2. 如果按n,它不会变成“yn”,而只是将字符改为“n”
  3. 如果您按 y 或 n 之外的任何字母,他们将不会注册。

  4. 也许作为奖励,如果您按 y,Yes!则会显示,如果按 n,No.则会显示。

谢谢!

4

1 回答 1

1
QTextStream cin(stdin);
QTextStream cout(stdout);
while (true) {
    cout << "Accept quest? (y/n)" << endl;
    QString choice = cin.readLine();
    if (choice == "" || choice == "y") {
        cout << "Yes.\n";
        break;
    }
    else if (choice == "n") {
        cout << "No.\n";
        break;
    } else {
        cout << "Please make a valid choice. ('y' or 'n', or just hit enter." << endl;
    }
} 
于 2015-11-26T22:13:58.747 回答