我写了这个简单的代码:
#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
.
我错过了什么?