我是一个学习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)) 程序在输入错误的输入时进入无限循环。请帮我解释这种现象,因为我所遵循的教科书说上面输入的代码应该按预期工作。
谢谢