注册 登录
编程论坛 C++教室

最近在学条件状态好难啊,这个当输入字母时,是死循环?

未未来 发布于 2013-03-17 20:37, 483 次点击
程序代码:
#include<iostream>
#include <string>
#include<stdexcept>
#include <bitset>
using namespace::std;
int main(){
   


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;
     }
     
}
}
3 回复
#2
rjsp2013-03-18 08:22
clear只是清除错误状态,此后还需要将输入流中错误的输入字符扔掉,可以用 ignore 成员
#3
不要脸的猫2013-03-21 22:06
while(cin.get()!='\n')
continue;//去除多余的非法输入
1