#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
会以“code 0”退出程序,控制台上不会有任何输出。我尝试在 bash 中运行它,但仍然没有输出。
输入:
line 1
line 2
line 3
line 4
line 5
预期输出:
5
实际输出:
program exited with code 0
最佳答案
在 *nix 系统上 EOF
由 Ctrl^D
生成,而在 Windows 系统上 EOF
由 Ctrl^Z< 生成
。我假设你使用的是Windows系统。请参阅https://en.wikipedia.org/wiki/End-of-file
关于c - 在基于 C 的语言中,EOF 是如何生成和解释的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42296290/