当用下面代码读取值时,如果输入字符时会导致错误。
int a ;
cout<<"输入一个数:";
cin>>a;
cout<<a<<endl;
例如输入k时,返回值0。如下
原因:当输入流读取失败时,它会把字符放回原处,等待下次读取;并且将 条件状态标识符 中failbit 置位,cin.fail()获取返回true。
可利用这个判断输入是否正确。
处理方法可参考下面的文章。
https://segmentfault.com/q/1010000000188833 ,
所以尽量使用字符读取。