我有一个代码。想法是当我需要输入一个号码,但我输入一个非数字字符,检查错误,并要求我输入一个工作号码,或继续或中断。但它跳过代码不输入数字。这是代码:错误输入号码时在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'循环,只需修复它。 –
你能说我完全错误! –
好的,谢谢。我解决了问题! –