https://www.cnblogs.com/zorro-x/archive/2013/05/17/3082968.html?utm_source=tuicool&utm_medium=referral
标志位相关知识链接。
要求:要求用户输入一个0-10的数字,正确返回输入的数字,否则提示输入错误、(最重要的是解决输入字母时也让其重新输入)【failbit
记录提取有效字段时失败(如输入的类型不满足,可通过清除输入缓冲区来挽回)】:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
using namespace std;
int main()
{
int num;
cout << “请输入一个0~10的数字” << endl;
while (1)
{
cin >> num;
if (cin.fail() == false&& num >= 0 && num <= 10)
{
cout << “您输入的数字为:” << num << endl;
break;
}
else
{
cout << “您输入的信息有误,请重新输入” << “cin.fail()=” << cin.fail() << endl;
}
cin.clear();
cin.get(); //抵消掉输入的回车而引发的死循环
cin.sync();
}
return EXIT_SUCCESS;
}