【FORM MSDN &&百科】
EOF--end of file
EOF is returned by an I/O routine when the end-of-file (or in some cases, an error) is encountered.
在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。
从stdio.h中可以看到EOF是一个宏,其值为-1
#define EOF (-1)
C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。
while((c=getchar())!=EOF)
{
putchar(c);
}
在 UNIX中, EOF表示能从交互式 shell (终端) 送出 Ctrl+D (习惯性标准)。在微软的 DOS 与 Windows 中能送出 Ctrl+Z。
C语言中,当把数据以二进制形式存放到文件中时,就会有-1值的出现,此时不能采用EOF作为二进制文件的结束标志,而要用到feof()。
feof函数既可用以判断二进制文件是否结束,也可以用以判断文本文件是否结束。
练习1-6:验证表达式getchar()!=EOF的值是0还是1
getchar()!=EOF 的值是1
练习1-7:编写一个打印EOF值的程序
printf("EOF'S value is %d\n",EOF);