我写了这个简单的代码:
#include <iostream>
using namespace std;
int main()
{
double s;
cin >> s;
if (cin.fail())
cout<<"Error";
return 0;
}
当我进入12.03时,cin.fail()返回false,这很好。
当我进入时sd234,cin.fail()返回true,这也很好。
但是,例如,如果我输入234.abcd. 或任何后跟字符的数字,cin.fail()尽管true我没有double通过cin.
我错过了什么?