while(1)
{
printf("请输入工程师编号:");
scanf("%d",&member[i].bianhao);
if(member[i].bianhao>0&&member[i].bianhao<10000)
break;
else
printf("非法输入,请重新输入!");
}
以上的输入我输入文字的时候,和字符的时候都是死循环!这是为什么?
while(1)
{
printf("请输入工程师编号:");
scanf("%d",&member[i].bianhao);
if(member[i].bianhao>0&&member[i].bianhao<10000)
break;
else
printf("非法输入,请重新输入!");
}
以上的输入我输入文字的时候,和字符的时候都是死循环!这是为什么?
while(1)
while是一个循环,()里面是循环条件
在C语言中,只要不为0就被视为真
所以说,当你写while(1)时,循环永远是成立的
也就会一直循环下去了
while(1) 这是个死循环,只有在 if(member[i].bianhao>0&&member[i].bianhao<10000) 这时才会退出循环
你输入文字当然不符合if的判断,继续循环,只有输入1-9999范围内的数字才会退出
肯定 啊 ,你这里写的是 while(1)又不是变量控制,不会发生改变,肯定是死循环
scanf遇到回车就终止了,它不读取回车字符,因此你输入一个数据按回车的时候实际尚你的数据进去了,但回车没进去,处理完这个数据之后,又遇到回车,这时什么也没输入,但遇到回车表示输入已结束,又执行命令去了,
要在scanf后面加个getchar();来读入那个回车符