EOF
是<stdio.h>
中的宏定义,EOF(End Of File)是一个与标准输入/输出流相关联的标志位。当文件指针已经指向文件尾且再次尝试读取时,EOF标志会被设置。同时,某些函数会在读取到文件尾(即EOF标志被设置)时返回EOF作为标识。
1 | /* Buffered I/O macros */ |
在操作系统中,文件以文件存储占用的扇区数作为文件大小的计数单位,故而如果文件的大小不能恰好填满存储文件的最后一个扇区,则需要对该扇区剩余的空间进行填充,过去填充使用的是值为26(0x1a)的字节,也就是某些系统中 Ctrl+Z 的对应码值。
EOF 函数
getchar()
getchar()
的返回值与EOF进行比较,如果不相同,说明还没有到达文件结尾。
在Unix系统中,可以通过在一行开始键入Ctrl+D来从键盘模拟文件结束条件;windows系统则使用Ctrl+Z来达到这个目的。
1 | while ((ch = getchar ()) != EOF) |
scanf()
scanf()
函数返回一个整数值,这个值是成功读取的项目数,或者当遇到文件结束时返回一个EOF(文件结尾符)。
1 | while (scanf ("%d", &n) != EOF) |
fclose()
fclose()
函数 如果成功返回 0,否则返回EOF(-1)。
getc()
如果读入字符时发现已经到达文件结尾,getc()
会返回一个特殊值EOF。
1 | int ch; |
feof()
int feof(FILE * stream);
会检查与文件对应流的eof( end of file )标志是否被设置,如果被设置则返回非零值,如未被设置,则返回0。
1 |
|