chengxindang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-16
  • 最后登录2011-07-24
  • 粉丝0
  • 关注0
  • 积分157分
  • 威望35点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:2050回复:7

急急急急c++ 问题,大侠快进!

楼主#
更多 发布于:2005-03-08 23:00
问个简单问题:各位老大帮帮忙:
int i;
int n;
cin >> i;
cin.clear();
cin>>n ;

当在cin>>i;时输入非法值后,cin.state 置位(2),cin 输入出错而进入错误状态后 那我用cin.clear()将cin.state 复位(0),但为什么cin 还是不能正确读入n的值,即cin.state清除后,cin的读入为什么还不能恢复。
那么在in 输入出错而停止输入后我改怎么作才能恢复cin正常输入?

各位大侠 也许看不上这样的问题,不过还是请帮帮忙,先谢了!
爱,使人死亡,情,让人疯狂!
chengxindang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-16
  • 最后登录2011-07-24
  • 粉丝0
  • 关注0
  • 积分157分
  • 威望35点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-09 13:03
 To :bmyyyud  老大:

  try{
     ....
   }catch(...)
{
...
}
不能捕获异常,即使能够捕获异常,cin 对象也不能恢复输入,请问怎么才能使cin在出错后,可以恢复输入。
谢谢! 继续给分
爱,使人死亡,情,让人疯狂!
chengxindang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-16
  • 最后登录2011-07-24
  • 粉丝0
  • 关注0
  • 积分157分
  • 威望35点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-09 13:16
好像
  用个SEH,也不行的,我是这样用的
  
__try
{
cin>>i;
}
__except(...)
{


}
不能捕获cin异常
爱,使人死亡,情,让人疯狂!
chengxindang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-16
  • 最后登录2011-07-24
  • 粉丝0
  • 关注0
  • 积分157分
  • 威望35点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-10 12:16
我想知道的问题时: 在cin出错后而停止输入动作时,怎么才能恢复cin的功能。C++primer说,用cin.clear();可以做到;但我试了不行;请问怎么才能恢复。
谢谢!给分!
爱,使人死亡,情,让人疯狂!
游客

返回顶部