问题描述
目标是循环直到用户输入整数,如果用户输入其他数据类型,它将打印出错误,然后再次执行循环。但是,当我输入一个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 (将#修改为@)