EOF是否隐藏在txt文件中?

Is EOF hidden in txt file?

我制作了一个用 C 语言编写的 .exe 文件 (echo_eof.exe)。 代码如下:

#include <stdio.h> 

int main(void) 
{
    int ch;

    while ((ch = getchar()) != EOF)
        putchar(ch);

}

然后我在 Windows cmd 中输入 echo_eof < words.txt 其中 words.txt 写为

Hello world!

命令输出为

Hello world!

我从来没有在文本文件中输入过 EOF,但 EOF 似乎隐藏在文本文件中。这是真的?如果是,有没有办法在文本文件中看到隐藏的 EOF?

如果您的读取函数在文件末尾并且无法获取另一个符号(可能是 char),那么它会被告知您已到达 EOF。 这不在文件中,它是来自文件处理程序的信号。