gebiwangda 2022-09-05 13:42 采纳率: 81.8%
浏览 41
已结题

如何让while循环中的scanf在读取到错误的数值后提醒用户重新输入

这个程序是用来测试用户所输入的值是否是一个整数,如果是整数则通过,如果不是整数则要求重新输入,但现在这段代码,在用户输入一个非整数后会持续打印“当前输入不合法”
请各位提供一个思路解决这个问题,感谢!

long check()
{
    int input;
    int test = 1;
    while (test)
    {   
        bool goout;
        goout = scanf_s("%d", &input);
        if (goout==false)
        {
            printf("当前输入不合法\n");
            bool goout;
            goout = scanf_s("%d", &input);
        }
        else
        {
            return input;
            goout = false;
            test = 0;
        }
    }
    
}//检验输入

  • 写回答

3条回答 默认 最新

  • 不太能吃 2022-09-05 13:55
    关注
    long check()
    {
        int input = 0;
        int test = 1;
        while (test)
        {   
            bool goout;
            goout = scanf_s("%d", &input);
            if (goout==false)
            {
                printf("当前输入不合法, 请重新输入\n");
                bool goout;
                continue;
            }
            else
            {
                return input;
                goout = false;
                test = 0;
            }
        }
       return input; 
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月13日
  • 已采纳回答 9月5日
  • 创建了问题 9月5日

悬赏问题

  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 正弦信号发生器串并联电路电阻无法保持同步怎么办
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 个人网站被恶意大量访问,怎么办
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)