我希望用戶輸入的輸入應該在0到100之間。如果他或她輸入負數或大於100的數字或字符,循環必須被觸發。我正在使用do-while循環來驗證用戶輸入的輸入。但是如果我輸入一個字符,那麼do while循環將被執行無限次。任何人都可以解釋這是爲什麼發生!以及如何檢查用戶是否已經輸入了char或int?使用scanf驗證輸入(檢查輸入是char還是int)
代碼用C寫成,用GCC編寫。
int num;
do
{
printf("num :");
scanf("%d", &num);
}
while(num<0 || num>=100);
「如果他或她進入負數或數超過100或字符時,循環必須被觸發「你的意思是你的循環應該停止或開始? – Prudhvi 2015-04-04 22:27:43
您需要清除輸入緩衝區 – 2015-04-04 22:28:38
@prudhvi是循環應該開始。但是當我輸入一個字符時,「num:」語句被無限打印 – Anonymous 2015-04-04 22:31:45