while循环问题
#include <stdio.h>int main(){
int line;
char c;
line = 0;
while((c = getchar()) != EOF){
if(c == '\n'){
line++;
}
}
printf("%d",line);
return 0;
}
就是这段代码,while循环出不来,执行不到printf,这是为什么?求解。
是在VC里调试的。
EOF 是键盘上的 Ctrl + Z getch返回值是用户输入的ASCII码,而EOF是宏定义为-1,没有ASCII码为-1,所以这个相当于死循环。EOF一般用来判断文本文件的结束用的。 人造人 发表于 2016-2-9 10:42
EOF 是键盘上的 Ctrl + Z
谢啦~ 倾天 发表于 2016-2-9 16:27
谢啦~
应该用 int 来接收 getchar() 的返回值,而不是 char。 小甲鱼 发表于 2016-2-9 16:28
应该用 int 来接收 getchar() 的返回值,而不是 char。
恩,刚刚看了一下,gethar()的返回值是int型,不是char型,(⊙﹏⊙)b,这名字误导我了;;
谢谢甲鱼老师!
页:
[1]