我正在写一个代码,要求用户输入10个整数,然后将它们反馈给他。我想创建一个“scanf检查”来限制字符输入。 while循环的工作原理是它不接受char,但会跳过一个整数输入。scanf检查while while循环来限制整数输入
int main()
{
int i = 0, number[10] = {0};
char buf[128] = {0};
for (i = 0; i < 10; i++)
{
printf("Please input number %d : ", i+1);
while(scanf("%d", &number[i]) != 1)
{
scanf("%s", &buf);
printf("Sorry, [%s] is not a number. Please input number %d : ", &buf, i);
}
}
for (i = 0; i < 10; i++)
{
printf("\n Number %d is %d", (10-i), number[9-i]);
}
return EXIT_SUCCESS;
}
下一'scanf'声明 –
@SakthiKumar之前尝试'fflush(标准输入)':不,从不使用'fflush(stdin)' - 它会在许多平台上导致UB。 –
@SakthiKumar,谢谢你的输入。 Paul R,你会推荐什么? – MIIJ