-1

いくつかの「既に回答があるかもしれない質問」を確認しましたが、うまくいったものは見つかりませんでした。私の問題は単純な while ループで、true と評価されるとループしてユーザー入力を要求します。while ループを false と評価して終了する数値を入力しますが、繰り返されます。2回目は番号を入力します。私は C++ にかなり慣れていませんが、私の iostream で何か問題が発生していると思います。



1) 「0」を入力すると、while ループが true と評価され、< 1であるため、ユーザー入力が再度求められます。「無効な数値です -- 数値は bwtween でなければなりません」

3) もう一度 1 を入力すると、while ループは false と評価され、ステップ 2 のように進みます。

コード:

string question = "Enter number of days rented (1-365): ";

int getValidNumber(int num, int lowerNum, int upperNum, string question){

    while((num < 1) || (num > 365)) {

           cout << endl;
           cout << "Invalid number -- the number must be bwtween " <<
                   lowerNum << " and " << upperNum << "." << endl <<
                   "Please try again." << endl;
           cout << question;
           cin >> num;         
           }

    return num;
}
4

1 に答える 1

1

コードをもう一度見てみると、同じ関数を 2 回呼び出していました。オペレータ エラー。それはそれをするでしょう....

cin >> rentalDays;
// Validate user input

getValidNumber(rentalDays, RENTAL_DAYS_MIN, RENTAL_DAYS_MAX, RENTAL_DAYS);
rentalDays = getValidNumber(rentalDays, RENTAL_DAYS_MIN, RENTAL_DAYS_MAX, RENTAL_DAYS);
于 2013-10-17T03:15:14.837 に答える