cin输入类型判断问题
int a;
cin >> a;
if(cin.fail())
{
cout << "wrong data!";
cin.clear();
cin.sync()
}
当我输入一个double型,如1.2时,cin.fail()是false
应如何修改才能判断类型错误呢
[解决办法]
用cin.peek()判断下一个字符
int x;
cin >> x;
if (cin.peek() != ' ' && cin.peek() != '\n')
{
cout << "wrong data!";
cin.clear();
cin.ignore();
}