gdb cin无限循环输入、无法break-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

杨冬芳 2016-07-18 18:01:31 1827

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

NoSQL
分享到
取消 提交回答
全部回答(1)
  • 杨冬芳
    2019-07-17 19:58:12

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

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题