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

关于cin.clear(),该如何处理

2012-03-22 
关于cin.clear()这是书上的代码:int iwhile(cini,!cin.eof()){if(cin.bad()){throw runtime_error(bad

关于cin.clear()
这是书上的代码:
int i;
while(cin>>i,!cin.eof())
{
if(cin.bad()){throw runtime_error("bad error!");}

if(cin.fail())
{
cerr<<"try again!";
cin.clear(istream::failbit);

continue;
}
}

当我输入一个字母时,程序就陷入了无限循环,不停地输出try again!,这个cin.clear(istream::failbit);语句不是用于清除了failbit错误了吗。。

[解决办法]
cin.clear(istream::failbit);
后面加个
cin.sync(); //清空流

[解决办法]
while(cin>>i,!cin.eof())
{
if(cin.bad()){throw "bad error!";}

if(cin.fail())
{
cerr<<"try again!";
cin.clear();
cin.sync();
continue;
}
}这样就不会了
[解决办法]

探讨

引用:

while(cin>>i,!cin.eof())
{
if(cin.bad()){throw "bad error!";}

if(cin.fail())
{
cerr<<"try again!";
cin.clear();
cin.sync();
continue;
}
}这样……

真的是这样,,不过为什么ci……

热点排行