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

C++中try catch处理错误有关问题

2012-03-02 
C++中try catch处理异常问题是这样一个情况intmain(){floatscore//成绩应该在0到100之间cout Entersco

C++中try catch处理异常问题
是这样一个情况
int   main()
{
    float   score;           //成绩应该在0到100之间
    cout   < <   "Enter   score   : ";
    cin   > >   score;
    //这里,如果输入的不是浮点型的数据,或者输入的是浮点型数据,但是又大于100,怎么样来提示错误并且回到输入那里呢?
}

能用try   catch实现吗?
麻烦说的详细一点,初学有很多不太明白的地方

[解决办法]
while(true)
{
cout < < "Enter score: ";
cin> > score;
if(cin.bad()||cin.fail())
{
cout < < "Input bad data,try again! " < <endl;
cin.clear(); //错误输入会致使cin状态改变,必须重置
continue;
}
else
{
if ((score> 0) && (score < 100))
{
break;
}
else
{
cout < < "score must between 0 and 100, try again ; ) " < <endl;
continue;
}
}
}


while(true)
{
cout < < "Enter score: ";
try
{
cin> > score;
if(cin.bad()||cin.fail())
{
throw runtime_error( "Input bad data,try again!\n ");
}
else
{
if (!((score> 0) && (score < 100)))
throw runtime_error( "score must between 0 and 100, try again!\n ");
break;
}
}
catch(runtime_error err)
{
cout < <err.what();
}
}

热点排行