题目是:输入起始数值a和终止数值b,输出a与b之间的素数。
卡在了 输入起始数值和终止数值时,输错成小数,如何判断、报错、重新输入、继续运行。
int a,b,x;
cout << "起始数值:";
cin >> a;
while(cin.fail())
{
cin.clear();
cin.ignore(100,'\n');
cout << "你只能输入一个整数。" << endl;
cout << "请输入起始数值:";
cin >> a;
}
while(!(a>=0))
{
cin.clear();
cin.ignore();
cout << "错误,请输入一个自然数!" << endl;
cout << "起始数值:";
cin >> a;
}
cout << "终止数值:";
cin >> b;
while(cin.fail())
{
cin.clear();
cin.ignore(100,'\n');
cout << "你只能输入一个整数。" << endl;
cout << "请输入终止数值:";
cin >> b;
}
while(!(b>=0) || b<a)
{
cin.clear();
cin.ignore();
cout << "错误,请输入一个大于a的自然数!" << endl;
cout << "终止数值:";
cin >> b;
}
上面的代码已经判断了输入的是字符字母和小于0的情况,但不适用于输入小数,输入小数会出现下面的样子:
求问各位该怎样修改?或者有其他判断、排除小数、字符的方法?感激回答!