初学者程序员在这里学习C
我的部分代码要求用户输入数字,并将进入 while 循环以检查输入的值是否为数字,如果不是,则 while 循环将清除输入(以停止无限循环),并要求输入数字再次。
问题是,当我清除输入然后在 while 循环中再次请求 scanf() 时,它显然清除了两次,我必须再次输入数字才能获得结果。
这是有问题的代码的一部分:
int askNum()
{
int number;
int check;
printf("Enter a number: ");
check = scanf("%d", &number);
while(scanf("%d", &number) != 1)
{
printf("You've entered an incorrect number.\nEnter a number: ");
fflush(stdin);
check = scanf("%d", &number);
}
return number;
}
如果有人可以解释为什么会这样,请解释或给我一些关于如何继续的提示。
太感谢了!