为了账号安全,请及时绑定邮箱和手机立即绑定

在需要数字时键入字符串时使用CIN的无限循环

在需要数字时键入字符串时使用CIN的无限循环

C++
互换的青春 2019-06-17 17:42:57
在需要数字时键入字符串时使用CIN的无限循环在下面的循环中,如果我们将字符键入为cin输入而不是期望的数字,然后进入无限循环。有人能给我解释一下为什么会发生这种事吗?当我们使用cin,如果输入不是一个数字,那么是否有方法检测到这一点以避免上述问题?unsigned long ul_x1, ul_x2;while (1){   cin >> ul_x1 >> ul_x2;   cout << "ux_x1 is " << ul_x1 << endl << "ul_x2 is " << ul_x2 << endl;}
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

也许是因为

  1. CIN是一个流函数。当输入一个非数字而不是数字时,它将被忽略.你会被提示重新进入。
  2. 即使您确实提供了数字输入,也会提示您输入更多的输入,因为您处于无限循环中。

您可以这样解决这个问题:1.创建一个接受字符串输入的函数。2.转换后以数值形式返回它。使用strtod()进行转换。

希望这有帮助:)


查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 664 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信