它是end of file
的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。
但程序里为了判断EOF通常都定义了函数或者变量,比如C语言里可以这样来判断字符是不是等于EOF
if (getchar() == EOF) {
printf("It's end of file");
}
这个EOF是定义在stdio.h里的常量,通常是-1,因为文本对应的ASCII码都是正值,不可能有负值。
但是正常的文件读取到末尾就会遇到EOF从而结束读取,如这段代码
int c;
while ((c = getchar()) != EOF) {
putchar(c);
}
printf("Read end");
但是标准的输入,比如交互命令下输入一段字符,于是就要有一个手动输入EOF
字符告诉程序输入结束
- Linux/Mac中,在新的一行的开头,按下
Ctrl-D
,就代表EOF - Windows中,
Ctrl-Z
表示EOF
那么,如果真的想输入Ctrl-D怎么办?这时必须先按下Ctrl-V,然后就可以输入Ctrl-D,系统就不会认为这是EOF信号。Ctrl-V表示按"字面含义"解读下一个输入,要是想按"字面含义"输入Ctrl-V,连续输入两次就行了。