在C代码中如何表示EOF?

67

在C代码中,换行符由"\n"表示。是否存在与文件结尾(EOF)字符相当的等效字符?


21
这个问题的假设是错误的,认为“EOF”是一个字符,但实际上它是一种条件。如果它确实是一个字符,那么它也就不再是结束了,对吧? - Kerrek SB
2
没有EOF字符。EOF是一个越界值,用于指示EOF条件。它不等于任何字符值(如由getc()等读取)。 - wildplasser
5
@Kerrek SB: 你说得对,但请注意过去有些操作系统实际上确实在文件中嵌入了EOF字符,例如CP/M使用Control-Z进行标记。 - Paul R
3
回答问题时,像“这个问题太明显了”这样的回答并不像那些表现出善意并给予指导的回答那么有帮助。这个关于EOF和SOF的问题困扰了我很久,直到我深入研究它。这是一篇好文章,讨论了这个确切的问题,并用代码示例更详细地回答了它... https://ruslanspivak.com/eofnotchar/ - Rich Lysakowski PhD
11个回答

0

在 stdio.h 中可以找到类型为 int 的常量 EOF。任何标准中都没有指定等效的字符字面值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接