[讨论]关于输入流的操作__cin.clear()
int main()
{
int ival; //定义一个整型的数
ios_base::iostate old_state =cin.rdstate(); //看看一下输入流的状态
cout<<cin.rdstate()<<endl;
cin>>ival; //输入一个字符串
old_state =cin.rdstate(); //再看它的状态,这时它是错误的
if(old_state == ios_base::failbit) //如果错误就是true
{
cin.clear(ios_base::goodbit); //我想在这里把输入流恢复正确
cin>>ival; //检查它是否正确,
cout<<ival<<ends; //若正确就输入并打印它
}
cout<<ival<<endl;
return 0;
}
/* 为什么不能用clear()来把流的状态恢复正确,
它的用法不对吗, 请高手不吝赐教*/