-1
int departmentNo;
bool depNumIncorrect = false;
do
{
depNumIncorrect = false;
cout << "Please enter your department number... (1/2/3)" << endl;
cin >> departmentNo;
if (departmentNo < 1 || departmentNo > 3)
{
cout << "Invalid Entry." << endl;
depNumIncorrect = true;
}
} while (depNumIncorrect == true);
正しい入力(1/2/3)を入力するたびに、コードは正常に動作し、ループなしで処理を続けます。間違った整数を入力すると、コードは想定通りにループします。しかし、文字や文字列を入力すると、コードが無限ループに入ります。 「部門番号を入力してください...(1/2/3)」が繰り返しコンソールに出力されます。C++無限ループ繰り返し
文字や文字列が入力されたときに無限ループを開始するのではなく、ループして再び入力できるようにするにはどうすればよいですか?
'std :: cin'のエラーフラグをクリアする必要があります。 – Jarod42
申し訳ありませんが、私はC++の新機能です。どうすればいいですか? – user216803
'departmentNo'が' int'の並べ替えだとすることはできますか? A [mcve]( 'main()'を含む)とあなたのコードを無限ループに入れる具体的な入力例であり、より正確なタイトルはこれを良い質問にするでしょう – Tas