死循环了,求解
大神们!这个死循环怎么解决?
程序代码:int displayhand()
{//显示主界面
int displayTag,drug=1;
printf("************************ 显 示 操 作 *****************************\n");
printf("****请选择显示类型: ******\n");
printf("** **\n");
printf("** 1.科技类 2.人文类 3.语言类 4.all **\n");
printf("** 5.返回 6.退出 **\n");
printf("** **\n");
printf("************************ 显 示 操 作 *****************************\n");
while(drug ==1)
{
scanf("%d",&displayTag);
if (displayTag>6||displayTag<1)//这里输入"="时进入死循环,不解!
{
printf("输入非法,请输入正确的操作!\n");
}
else drug = 0;
}
return displayTag;//返回选择的操作值传给display()函数
}









原来是这样子的:原来是定义为int类型的,当输入的是字符时因为没有转换类型,而输入的格式又是(%d),没法放入变量,所以输入的字符一直在不停的做着录入比较的工作,就进入了死循环了,而字符就不会,数字也算是字符。当我用 (%c)格式输入时,enter键也算是一个字符,每当敲下enter键时都会赋给了需要输入的变量进入了if()判断语句;改换成(%s)格式输入时enter就不算是输入的字符,可以正常输入,再把输入的字符转换类型就