我正在寫一個代碼,要求用戶輸入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