我是C语言的新手,我在写这段代码很有趣。在这里,我先获取用户名,然后再从用户那里获取一个猜测数字。我编写了一个函数来检查数字是否为int(仅需要整数输入。)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
char userName[30];
int userGuess, check;
int checkGuess(int, int);
printf("Enter your name - ");
scanf("%s",&userName);
int i = 0;
while(++i<=10)
{
printf("Enter Your Guess: ");
check = scanf("%d",&userGuess);
checkGuess(userGuess, check);
}
return 0;
}
int checkGuess(int userGuess, int check)
{
if(check == 1)
{
printf("yes int, %d.\n",userGuess);
} else
{
printf("Not int\n");
}
}
但是,当我放置整数时,它可以正常工作,但是当我放置字符串或浮点数时,它将运行循环直到结束。
stdin
失败时需要刷新scanf
while (i < 10)
{
printf("Enter Your Guess: ");
check = scanf("%d", &userGuess);
if (check != 1)
{
// Flush stdin
while ((check = fgetc(stdin)) != '\n' && check != EOF);
}
else
{
// Increment i only when scanf has success
i++;
}
}