數據輸入錯誤,有兩種情況:
1輸入的數據格式不正確,比如要求輸入整型,但是輸入了字符型。這種情況,可以通過scanf的返回值進行判斷,scanf的返回值是正確輸入的變量個數。當返回值和要輸入的變量個數不同時,則表示出錯,要求重新輸入。
2輸入的數據不在合法范圍內。比如要求輸入正數,但輸入了負數。這時需要判斷輸入的值是否合法。以輸入兩個整數,要求范圍在0~100之間的代碼可以寫作inta,b,r;while(1)//死循環,不得到正確輸入不退出。{r=scanf("%d%d",&a,&b);if(r==2&&(a>=0&&a<=100)&&(b>=0&&b<=100))break;//輸入正確,退出循環。printf("輸入不正確,請重新輸入");fflush(stdin);//清空輸入,這一步是必須的,不然出錯的輸入可能影響下次輸入。}