ユーザーが正しい文字で入力したことを検証しようとしています。char が入力されたと仮定しています。
問題: 最初に「f」と入力すると、carSize が返され、すべて正常に動作し、コードが正しく続行されます。最初に「d」と入力すると、「正しい値が入力されていません...」と正しく表示されますが、もう一度「f」などの正しい値を入力すると、「あなたが持っている値が入力されました」と繰り返されます。正しい値が入力されていません」と表示され、別の応答を待ちます。それ以降は、何を入力しても、答えが間違っているかのようにメッセージを返します。これはかなり単純で、私は一生、自分が何を間違っているのか理解できません。私は初心者なので、関数で「サイズ」を間違って使用している可能性がありますか? どんな助けでも大歓迎です。
これが私のコードです:
const string RENTAL_DAYS = "Enter number of days rented: ";
cout << RENTAL_DAYS;
cin >> rentalDays;
rentalDays = correctNumberCheck(rentalDays, RENTAL_DAYS);
char rentalSizeCheck(char size, string question) {
bool notValid = true;
size = toupper(size);
while(notValid) {
switch (size) {
case 'C':
notValid = false;
break;
case 'M':
notValid = false;
break;
case 'F':
notValid = false;
break;
case 'S':
notValid = false;
break;
default:
cout << "You have not entered in a correct value "
<< ", please try again" << endl;
cout << question;
cin >> size;
}// Close switch
} // Close while loop
return carSize;
}