什么是EOF,它的意义是什么?如何被注意到?

时间:2015-07-01 08:10:45

标签: c eof getchar

在C语言中学习getchar()函数时,我发现这个EOF被返回,我想知道它的存在是如何被注意到的,它存储在哪里?

我们可以明确键入EOF字符吗?

3 个答案:

答案 0 :(得分:3)

=IFERROR(INDEX(Sheet1!B:B,MATCH(C9,Sheet1!C:C,0)),MAX(Sheet1!B:B,B$8:B8)+1) 文件结尾的缩写。它不是一个真实的角色,而更像是指示输入流结束的信号

考虑EOF,它曾用于从getchar()获取字符(标准输入)。如何判断stdin流何时结束?必须有一个特殊的返回值,它与任何有效字符都不同。 stdin扮演这个角色。

要为EOF生成EOF,请在Unix系统上键入 Ctrl + D ,或在Windows上键入 Ctrl + Z

答案 1 :(得分:1)

EOF是从 stdio 输入流中读取时应用于文件结尾的命名常量。如果您查看getchar()原型,您会首先注意到一些奇怪的事情是它返回的不是char值,而是int。通常情况下,EOF会转换为某个负整数值(历史-1),这意味着无法从键盘/输入文件生成该字符。

当然,EOF常量不是一个字符,int getchar(3)会在文件结束时返回。这也是 getchar(3)返回int而不是char值的原因。这也是始终EOF映射到负值的原因。

getchar(3)会返回257个可能值中的一个,0最多为255 和EOF (通常为{{1} })。作为整数值查看,-1-1不同。它是C中最古老的实现函数之一(它自K& R的第一版“C编程语言”以来就存在)

答案 2 :(得分:0)

EOF是abbr。用于文件结束。这是表示您已经到达正在读取文件流的文件末尾的特殊字符。

通常,人们通过以下方式检查他们是否已到达文件末尾:

while(!feof(fileStream)) {
    // read one line here or so
    ...
    // do your stuff here.
    ...
}