在进行用户输入时,常产生错误,会引发cin状态错误,一旦发生错误,再不可进行输入操作,除非cin恢复正常状态。
一般常见错误为:定义整型变量,但输入了字符,就会发生错误。
以下代码进行了cin状态恢复,虽然很简短,但在实际应用中是很常见又很有效的。
代码作用,直到输入一个整数才退出循环。
#include <iostream>
using namespace std;
void main()
{
int n;
cout<<"请输入数字:";
while(!(cin>>n))
{
cin.sync();//清除缓冲区
cin.clear();//清除错误状态,在这个程序里,两个必须一起用,否则 达不到效果
cout<<"您只能输入数字,请重新输入:";
}
}