在对scanf函数和getchar函数混合使用时发现假如把getchar处理的那一段删除的话会出现无限循环的情况?
long get_long(void){ //获取输入的值
long input;
char ch;
while (scanf("%ld",&input) != 1) {
//如果去除下面这个while语句的话会发生无限循环,为什么?
while ((ch = getchar()) != '\n') {
putchar(ch);
}
printf(" is not an integer.\nPlease enter an integer value:");
}
return input;
}