输入流读取失败的问题

chuxd 2003-03-13 04:03:13
在我编数据结构时经常碰到要用户输数字的情况,但是如果这时输入的是字符,cin就会失败,下一次用cin<<还是出错,请教各位应如何避免。

例如:
while(!(cin>>num))
{
cout<<"Please input a number:\n";
}
当输入d时就进入死循环,请问怎么改?
...全文
48 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fireinsky 2003-03-15
  • 打赏
  • 举报
回复
cout << "please input a number:";
cin << num;
while (num<'0' || num>'9')
{
cout<<"Please input a number:\n";
}
shornmao 2003-03-15
  • 打赏
  • 举报
回复
用cin.clear()清除cin错误状态,并用cin.ignore()跳过输入缓冲区剩余内容。没有先后顺序。

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧