鱼C论坛

 找回密码
 立即注册
查看: 2969|回复: 0

当cin读入失败后怎么办

[复制链接]
发表于 2013-4-12 21:39:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我不得不说,C++,好烦奥

今天写了个程序,读取一个数字,为了考虑到程序的健壮性,我要判断输入的合法性
我像在C里面一样,用一些代码来防止错误的发生,通过循环来提示用户不断输入,直到输入合法
然后,让我接受不了的东西发生了
程序居然进入死循环了

我开始以为,是因为非法的输入被保留在输入队列中,从而导致这个问题的产生
于是我企图用cin.get()函数来清楚这个非法输入(我仅仅输入一个字母)

结果依然是进入死循环
折腾了好长时间,我才隐约想起来
在C++里,一旦读取失败,cin的错误标记将被设置,从此再也无法读取输入了
必须通过cin.clear()方法,来重置cin,另外依旧需要清楚非法输入
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-3 15:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表