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

毕设向导 课程设计 1

问题背景

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

尝试结果

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

明确问题

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

回复

共1条回复 我来回复
  • 代码向导
    这个人很懒,什么都没有留下~
    评论
    别用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);
    
    0条评论

发表回复

登录后才能评论