私はC++に関する質問があります。私は答えを探していて、私のコードを修正するものは何も見つかりませんでした。そこで私は自分自身に尋ねることにしました。私の問題は、曜日を出力するこの小さなプログラムを作成したことです。ユーザーが1を入力すると、週の第1日(日曜日または月曜日、あなたの住んでいる場所によって異なります)などが出力されます。そうです。しかし、ユーザが例えば8を入力すると、プログラムは「1と7の間の数字を選んでください!」と出力する。 しかし、私の問題は、ユーザーが文字やランダムな単語を入力すると、 "1〜7の数字を選んでください!"というループです。永遠に。C++ Cinは非整数を無視しますか?
#include <iostream>
#include <Windows.h>
#include <string>
using namespace std;
int main() {
int input;
do {
cin >> input;
switch (input) {
case 1:
cout << "Sunday" << endl;
break;
case 2:
cout << "Monday" << endl;
break;
case 3:
cout << "Tuesday" << endl;
break;
case 4:
cout << "Wednesday" << endl;
break;
case 5:
cout << "Thursday" << endl;
break;
case 6:
cout << "Friday" << endl;
break;
case 7:
cout << "Saturday" << endl;
break;
default:
cout << "Please choose a number between 1 and 7!" << endl; // if user chooses a number not from 1-7 output this. But if input is not an int and for example "a", it will loop this forever.
break;
}
} while (true);
return 0;
}
これは正常です。 'cin >> input;がOKになったかどうかは決して確認しません。 – user0042