我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

关于c语言检测输入错误重新输入

img


img

在输入负数和字符是都能正确运行,重新输入,但是输入一个小数时会将后面的代码运行一遍再重新输入,推测是scanf将第一个数字已经保存?怎么解决

别用goto了。

 do
    {
        ret = scanf("%d", &n);
        if (ret != 1)
            printf("输入0\n");
        if (n < 0)
            printf("大于0\n");
        fflush(stdin);
    } while (ret != 1 || n < 0);

在每一个scanf后面加一句 fflush(stdin) 试试

近期文章

  • 不是说f1值等于精确率和召回率的调和平均数,为什么这两个结果不一样
  • 降维遇到一些问题求大家回答一下
  • 简历上如何写java项目?
  • qt designer 中 怎么实现两个二选一
  • 如何在SQL INNER JOIN中使用AS?
  • Windows装系统 拷贝镜像重启以后还是u盘系统 0.0
  • ch1=getchar()与getchar("%c",ch1)有什么区别
  • 关于#测试用例#的问题,如何解决?
  • 请问一级指针做形参,传一级指针的地址,错在了哪里呀
  • c语言运行错误,求解决!
  • 2048方块的移动问题
  • 为什么求pi除以四结果不对?
  • 包含一个公共文件只在一个文件Codeigniter中失败
  • 怎么理解逻辑表达式呀?
  • 弹出层中使用日历组件报错Cannot use 'in' operator to search for 'scrollTop' in undefined
  • 怎么删掉360安装的python?
  • weblogic无法在eclipse上集成,如何解决?
  • 一个python问题
  • 请问用C++如何写一个高位数字小于低位数字的四位数
  • 为啥double d,d可以等于(int)d

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华