这是我的计划。
reprocess:
printf("Enter number: 1,2,3 ");
if(scanf("%d%c", &preproc, &term)!= 2 || term!= '\n' ){
printf("Invalid Input");
goto reprocess;
}else{
if ((preproc==1) || (preproc==2) || (preproc==3)){
printf("Correct Input\n");
}else{
printf("Invalid Input %d \n", preproc);
goto reprocess;
}
}
为什么如果我输入一个字符串,它就不会停止循环?请指导我。
答案 0 :(得分:1)
试试这个
if(scanf("%d%c", &preproc, &term)!= 2 || term!= '\n' ){
printf("Invalid Input\n");
scanf("%[^\n]");//this will skip the input when there is a non-numeric input.
goto reprocess;
}else{