私はC++を学んでいる初心者プログラマーです。cin コマンドに問題があります。以下のプログラム セクションでは、最初の cin コマンドで間違ったタイプを入力すると、プログラムは次の cin コマンドをまったく実行せず、残りのプログラムを実行します。
//start
#include <iostream>
using namespace std;
int main()
{
int x=0;
cout << endl << "Enter an integer" << endl;
//enter integer here. If wrong type is entered, goes to else
if (cin >> x){
cout << "The value is " << x << endl;
}
else {
cout << "You made a mistake" << endl; //executes
cin.ignore();
cin.clear();
}
cout << "Check 1" << endl; //executes
cin >> x; //skips
cout << "Check 2" << endl; //executes
cin >> x; //skips
return 0;
}
//end
if else の代わりに、同じ概念をループ while (!(cin >> x)) に入れた場合、プログラムは間違った入力を入力すると無限ループに入ります。私がフォローしているテキストブックには、上記のコードが意図したとおりに機能するはずであると書かれているため、この現象の説明を手伝ってください。
ありがとうございました