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;}