我有一個代碼。想法是當我需要輸入一個號碼,但我輸入一個非數字字符,檢查錯誤,並要求我輸入一個工作號碼,或繼續或中斷。但它跳過代碼不輸入數字。這是代碼:錯誤輸入號碼時在C跳轉代碼
int EnterNumber(){
int number;
printf("Enter your's number:");
if(!scanf("%d", &number)){
puts("Keypress don't number!");
int choose = 0;
puts("Work:\n\t1. Continue 2. Break \nYour's number will choose:");
while(!scanf("%d", &choose)){ // here it jumped.I cann't enter number!
switch(choose){
case 1:
EnterNumber();
break;
case 2:
break;
default:
puts("Keyboard don't recognize");
break;
}
}
}
return number;
}
任何人都可以幫助我解決這個錯誤嗎?
這是不是一個「跳」,它是*遞歸*,你可能不希望在這裏。你已經有了'while'循環,只需修復它。 –
你能說我完全錯誤! –
好的,謝謝。我解決了問題! –