【C++】关于输入流fail()的用法
问题:
cin.fail()来判断当前的输入的类型和预期的是否相同,如不同cin.fail()返回true。如何获取cin.fail()所返回的true值和当前输入的值?
解决:
#include <iostream>
using namespace std;
int main()
{
int a;
char b;
cin >> a;
if(cin.fail())//输入的为int时返回false,char时返回ture
{
cin.clear();//清楚此时的fail状态
cin >> b;//换用正确的(或更通用的类型储存)
cout << "fail,the input is char" << b <<endl;
}
return 0;
}
输入流fail()使用的原则为:
当输入流读取失败时,会将字符放在原处,等待下次读取!
此外,fail()返回了true之后要用clear()来清楚fail状态。