#include <stdio.h>
int main(){
int c, nl=0;
while((c = getchar()) != EOF)
if(c=='\n')
nl++;
printf("%d",nl+1);
return 0;
}
在Ubuntu 18.04,GCC 7.3.0
当getchar()
与EOF
进行比较时,控制台上没有输出。它适用于其他角色。使用CTRL^D
以“代码0”退出程序,控制台上没有任何输出。我试过在bash中运行它但仍然没有输出。
输入:
第1行
第2行
第3行
第4行
第5行
预期产量:
5
实际产量:
program exited with code 0
在* nix系统上EOF
由Ctrl^D
生成,而在Windows系统上,EOF
由Ctrl^Z
生成。我假设你使用的是Windows系统。见https://en.wikipedia.org/wiki/End-of-file
这些程序用于从文件中读取输入。所以在bash如果你这样做:./linecount < textfile.txt
将给你输出5
但我想编辑使用ctrl^D
生成/触发EOF
字符不能很好。(至少不是我的)。