#include
using namespace std;
void main()
{
int a;
cout < < "输入一个字母: " <
cin> > a; // int型变量中放了char型数据,failbit置1
cout < < "cin.fail()= " < < cin.fail() <
cout < < "输入一个数字: " <
cin> > a; // 故此处的输入无效
cout <
cin.clear(); // 此处用cin.clear()流标志复位
cout < < "cin.fail()= " <
cout < < "输入一个数字: " <
// 但刚才输入的字符并没有从流中清除,所以cin> > a又把那个字符放入a中,流输入流又不能正常工作
cin> > a;
cout <
cout < < "cin.fail()= " <
cin.clear(); // 再次修复输入流
cin.ignore(); // 取走刚才流中的字符
cout < < "输入一个数字: " <
cin> > a;
cout < < "a= " < // 现在再看一下输入流的failbit
cout < < "cin.fail()= " <
}