循环直到使用C

问题描述

目标是循环直到用户输入整数,如果用户输入其他数据类型,它将打印出错误,然后再次执行循环。但是,当我输入一个char时,循环将无限下降。如何在没有循环无限下降的情况下执行此操作?

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int player_input = 0;
    _Bool player_loop = 0;


    while(!player_loop)
    {
        fprintf(stdout,"Enter position on board: ");
        if((scanf("%d",&player_input)==1))
        {
            fprintf(stdout,"%d\n",player_input );
            player_loop = 1; //break out of loop
        }
        else
        {
            fprintf(stderr,"Error: Please enter an integer!\n");
        }
    }

    fprintf(stdout,"broke out of loop.\n");

    return 0;
}

我实施了类似的操作,检查玩家用户名,如果检测到数字,它将返回false,但是我该如何使用整数呢?

bool check_username(char *name)
{
    while (*name)
    {
        if (isdigit(*name))
        {
            fprintf(stderr,"Please use only characters\n\n");
            return false;
        }
        name++;
    }
    return true;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)