读书人

关于c++ IO类的条件状态的疑惑解决方法

发布时间: 2012-03-13 11:21:11 作者: rapoo

关于c++ IO类的条件状态的疑惑
我现在正在看c++ primer第八章,对于P248页的这个程序我感到很费解
int ival;
while(cin>>ival,!cin.eof())
{
if(cin.bad())
throw runtime_error("IO stream corrupted");
if(cin,fail())
{
cerr<<"bad data,try again";
cin.clear(istream::failbit);
continue;
}

}
首先cin.clear(istream::failbit)的作用是什么,这样做的话不是cin的状态依旧是fail吗,这样程序不就是死循环么?
然后我将上句改为cin.clear(istream::goodbit),程序运行后依旧是死循环,求各位帮我看一下,究竟是怎么回事,是
我理解错误了么

[解决办法]
to 主楼和5楼,把这行

C/C++ code
cin.clear(failbit); 

读书人网 >C++

热点推荐