请大家帮我看看:输入字母则陷入死循环
就下面这段代码,目的是要求使用者输入1-5的选项,如果输入错误则返回重新输入实际效果是:如果输入错误的数字则正常返回,如果输入字母或中文,则陷入死循环,跳过输入语句(scanf),直接开始if语句!
请大家帮忙分析下是什么原因,谢谢大家!
程序代码:
//当输入非数字字符时会陷入死循环 #include <stdio.h> main() { int num; input: printf("请输入1-5之间的数:\n\n"); scanf("%d",&num); //下面的if语句用来防止使用者输入无效选项: if(num<1||num>5) { printf("\n输入有误,任意键继续\n\n"); getch(); goto input; } printf("您输入的是: %d\n",num); }