[求助]关于C语言的while循环
大家看下面两个循环
(1)while(scanf("%d",&hr)!=1)
{
while((ch=getchar())!='\n')putchar(ch);
printf(" is not a valid value.");
}
(2)while(scanf("%d",&hr)!=1)
{
printf(" is not a valid value.");
}
这两个循环的作用是如果输入的不是整数,那么给出提示并要求重新输入,只是第一个循环多了回显用户错误的输入。
我想在某些场合不需要回显错误,所以删除了while((ch=getchar())!='\n')putchar(ch);语句。
但是在调试运行中发现,第二个循环是个死循环。
为什么第一个循环行,第二个不行?回显语句对循环有什么影响?