1
我有一個while循環打印一個整數提示。我想錯誤檢查用戶何時輸入字符,如'a'。但是,當我鍵入'a'時,它將永遠打印「輸入種子:種子必須是整數值,請再試一次」。雖然循環不等待scanf輸入(「%d」)
int getSeed() {
int scanned, seed;
while (scanned == 0) {
printf("Enter the seed: ");
scanned = scanf("%d", &seed);
if (scanned == 0) {
printf("Seed must be an integer, try again\n");
}
}
return seed;
}
我如何獲得這個打印
Enter the seed: a Seed must be an integer, try again Enter the seed:
感謝。
編輯:解決了它,我添加了getchar();在scanf之後。
[scanf not reading input]可能重複(http://stackoverflow.com/questions/5289542/scanf-not-reading-input) – FiReTiTi
您的解決方案不會真正解決它。如果有人輸入,事情仍然會出錯,例如「aa」。如果你想讀一行然後解析它,編寫代碼來做到這一點。 –