安安是 2021-11-26 00:54 采纳率: 0%
浏览 68

cin循环输入时,程序卡住了?

大佬们,我想请问一下,就是我用一个for循环,然后在for循环里面定义了一个整型的b,然后用cin函数输入b的值,然后再调用一个哈希表的插入函数把b插入进去,但是我在输入某些值后循环就会卡住,不再调用插入函数了,但是有些值又可以成功,请问是为什么啊?我看网上好多说是cin函数的问题?

  • 写回答

2条回答 默认 最新

  • 关注

    你b变量是int类型 cin >> b只负责接收int 类型的数字。
    应该是你输入了字母,输入有误,无法读取字母给b变量,导致cin错误而关闭,这样缓冲区里面还有这个字母数据,
    下次循环还是从缓冲区里面取数据,不会让你重新输入,这样一直要从缓冲区里面取数据, 又一直无法读取字母给b变量。就死循环了。

    解决方法是 在cin >> b 前用cin.clear();重置标志位和cin.sync(); 清空缓冲区
    参考

    https://blog.csdn.net/u010632547/article/details/105687659

    如有帮助,望采纳!谢谢!

    评论

报告相同问题?

问题事件

  • 创建了问题 11月26日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集