问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于c++中ignore陷入死循环的问题

发布网友 发布时间:2022-05-07 01:39

我来回答

2个回答

热心网友 时间:2023-10-11 06:21

函数istream& get(istream& hin)里面的while判断出了问题。 你的代码是:

    while(hin>>val, !hin.eof())

应该修改为:

    while(hin>>val && !hin.eof())

(,)这是C++里面的顺序操作符,先判断一下左边的操作符,然后直接执行,号右边的操作。因此最终while()判定的,其实只是while(!hin.eof())这个操作。hin>>val的结果留在缓冲中,根本没有来得及被清除,因此不停循环~~~。


小建议:ignore()后面最后不要直接写200这种magic number;标准作法:

#include <limits> 
...
    hin.ignore(numeric_limits<streamsize>::max(),'\n');
...

热心网友 时间:2023-10-11 06:21

楼上的作法对于这个问题来说是错误的,如果把循环改成while(hin>>val && !hin.eof())
那么只要当你输入第一个错误字符时,不会进入循环体,而是直接跳出循环,结束函数调用(这里假设函数名不是get)
对于本问题,正确的做法是如下:
把函数名改一下别用get
你重载了标准库里的get函数,所以编译器优先调用标准库里的get函数而不是你的get函数
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怀孕错过了糖筛怎么办 糖筛有哪些注意事项 怀孕几个月查唐筛 蔡家沟镇慈云寺 哈佳高铁高楞站多少平方米位置在那 超威电池生产日期怎么看 超威电池寿命一般多长时间 华晨宇鸟巢四面台10w+秒罄!!火星演唱会舞台概念图震撼发布! 手机连接160wifi电脑蓝屏使用160WiFi遇到问题应该如何解决 为什么手机wifi总是刚开启,锁屏就掉了。wifi设置里的休眠模式也是永久的... 建行卡为什么不能网上转账 学校发我们的建设银行卡一定要激活吗? 我打电话查余额说输入取钱密码... Beautiful life东方神起中文音标(歌词),快呀! 浪漫满屋里的《命运》用中文怎么唱 一百字内的迟到检讨书怎么写? qq飞车上的一首英文歌.歌词米丢来米丢来什么什么的 命运韩文版 超星网课相关答案,去哪儿就可以搜到? 求我叫金三顺里的一首歌歌词 钟铉(shinee)--so goodbye 歌词 AA地的词 急求少女时代金泰妍“还有一个”、“如果”、“疯了般想你”这三首的音译,谢谢 求AA形式的词语 b1a4 爱情那时 音译歌词 中国目前为止出台的关于电子竞技的政策 我打电子竞技比赛赢了10000元奖金要扣多少税 中国电子竞技俱乐部如何纳税,都有那些税要缴纳 促进电子竞技产业发展的税收政策有哪些 ? 新买的手机,微信限制登录,怎么办 三星笔记本电脑,怎么截图啊,在yy频道里面怎么截图? yy退出登陆后,再重新登陆为什么账户余额清零了?求解答 3818三星手机怎样才能在yy上截图 求免费发布便民信息的和公众号,各个地区的都可以。 歌曲(安七炫)面具 韩文的汉语译音 迟到 检讨!100字! 闵行华漕便民服务 因为回家所以回来上班迟到检讨书 谁有便民服务的微信账号 如何授权直系亲属使用上海社会保障卡 便民信息的。 上海便民推广的什么,谁知道,谢谢! 有没有发布便民信息的,求个 求各地 每天发便民信息的,不是公众号,多多益善,感激不尽! 做便民服务的是如何盈利的? 求全国各地方大小城市,“便民信息,同城服务,微生活的”!可以发广告那种的!求各位大神帮忙, 上海市儿童医院小孩疑似多动症可以看看吗 去南京穿什么衣服啊? 我是山东的,要去南京上学,请问南京冬天的天气怎么样啊?冬天在南京一般都穿什么衣服比较合适? 飞利浦的音响好还是小米音响好 这天去南京穿什么衣服和鞋子比较好。。。 10.1去南京玩,应该穿什么衣服 请问南京人冬天都穿什么衣服