首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

cin.clear(istream:failbit)和cin.clear()的区别解决方案

2012-05-28 
cin.clear(istream::failbit)和cin.clear()的区别while(inival,!in.eof()){if(in.bad ())throw runtime_

cin.clear(istream::failbit)和cin.clear()的区别
while(in>>ival,!in.eof())
{
if(in.bad ())
throw runtime_error("stream corrupted");
if(in.fail ())
{
cerr<<"bad data,try again"<<endl;
  in.clear (istream::failbit );
in.ignore (1024,'\n');
continue;

}
cout<<ival<<endl;
  }
问题被讨论过很多次,用in.clear(),程序正常运行,
不过我发现当用in.clear(istream::failbit)时候,非法输入情况下,程序竟然是死循环,没有输入阶段

?搞不清楚原因。。。,请大神解答

[解决办法]
istream::failbit
The last input operation failed because of an error related to the internal logic of the operation itself.
找点资料你看下

热点排行