请问假如我要输入一个整型int n
我要对输入的数据进行合法性检测,如果输入的不是整型,就会报错,然后重新输入,
我该怎么弄啊
参考学习:
#include <limits>
#include <iostream>
using namespace std;
int main() {
int n;
while (true) {
cout << "请输入一个整数:";
cin >> n;
if (cin.fail()) { // 输入失败
cin.clear(); // 清除输入缓冲区
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // 忽略当前行剩余部分
cout << "输入错误,请重新输入" << endl;
} else {
break; // 输入成功,跳出循环
}
}
cout << "输入的整数为:" << n << endl;
return 0;
}
使用了while循环来读取并检测输入的整数,其中cin.fail()函数用来判断输入是否成功,如果输入失败,则需要使用cin.clear()清除输入缓冲区,并使用cin.ignore()忽略当前行剩余部分,防止之后的输入操作也受到影响。如果输入成功,则跳出循环并输出输入的整数。
int n;
while (scanf("%d", &n) != 1)
{
printf("输入不正确,请重新输入\n");
fflush(stdin);
}
#include <iostream>
using namespace std;
int main(){
int a;
cin >> a;
do{
cout<<"数据类型错误!"<<endl;
cin>>a;
}while(!a.good());
return 0;
}