开发者社区> 问答> 正文

gdb cin无限循环输入、无法break

1调用cin和scanf都会无限的输入按啥也退不出去,用fstream重定向输入可以正确执行。
2.break总是没有用,没法暂停

展开
收起
杨冬芳 2016-07-18 18:01:31 3318 0
1 条回答
写回答
取消 提交回答
  • IT从业

    当你在控制台输完数据敲回车后,输入的数据以及回车换行符被同时送到输入缓冲区,例如你输入的数据为a,然后回车,此时输入缓冲区中就有两个字符,一个是‘a’,一个是回车换行符‘/n’,接着程序读取,由于类型不匹配,读取失败,并没有读走输入缓冲区中的数据,也就是说,此时输入缓冲区中还是‘a’,和‘n’,接着while循环继续读输入缓冲区,依然类型不匹配,于是就成了死循环
    方法:在调用cin前可以先调用cin.clear()和cin.sync()

    2019-07-17 19:58:12
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载