为什么输入小数后会重复并爆屏?🥲🥲🥲
3条回答 默认 最新
- aaaa0ggMC 2021-08-10 17:12关注
分析:
输入小数时,scanf处理字符串如下
12.2
scanf("%d",&x)读取一个整数,并从缓冲区中去除了读取的那一部分,于是缓冲区现在是
.2
scanf("%d",&y)读取整数,但是缓冲区中第一个字符为'.',不符合条件(scanf只会跳过空白),于是立马返回0(自己试试接受一下返回值),之后都一样
(循环)建议:
1.scanf读取是用返回值来判断输入是否正常并反馈给用户让他重新输入
2.用getchar()与while来"吃掉"这一行来杜绝缓冲区出错(第一个方法也需要这个,否则就是错误信息循环)(这个会吧?)本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算