1
#include <iostream>
using namespace std;
int main() {
int x;
char y;
cin >> x;
while(!cin)
{
cout << "Error" << endl;
cout << "Enter x and y again => ";
cin.clear();
cin.ignore(256,'\n');
cin >> x;
}
cin >> y;
while (!(!isblank(y) && isalpha(y)))
{
cout << "You have entered wrong values try again!" << endl;
cout << "Enter x and y again => ";
cin >> x >> y;
}
return 0;
}
我试着处理,如果输入的输入是1 a
。 x
应该是一个数字y
也应该是字母字符。它应该再次要求输入值x
和y
。但是,它没有。它应该接受1a
。如何克服这个问题?处理空格字符作为输入
它适合我。如果我输入'1a','x'是'1','y'是'a'。 'operator >>'忽略了所有前面的空白区域。 – NathanOliver
怎么样与空间字符'1 a'?在这种情况下,它应该再次请求输入@NathanOliver – snr
如果空格有所作为,则应使用getline()读取整行(而不是使用cin),然后自己分析结果。 – FredK