文件结尾在不同的操作系统上有可能不同,但一般都是如下两种中的一种:
1、ctrl+z标志文件结尾:即通过一个内嵌的ctrl+z来标志文件的结尾,例如:
Hello,I am MS.\n^Z
2、利用文件大小表示结尾:这种方式下,操作系统存储文件的大小。例如,一个文件一共有1000字节,系统已经从中读取了1000字节,则这个文件已经到了末尾。目前,Unix使用这种方式标识文件结尾。
C模拟文件结尾:
先看如下代码:
#include<stdio.h>
int main(void){ int ch; while((ch = getchar()) != 'EOF'){ putchar(ch); } return 0; }
代码其实很简单,就是一个回显的程序。其中的'EOF'字符是C中定义在stdio.h中的文件结束字符。现在运行它,会发现无论你输入什么,计算机都会在怒按下回车键后重新显示你的输入。
那么怎么模拟文件结尾呢,这个不同的操作系统也不一样,在我的Linux环境下是Ctrl+D,Windows下好像是Ctrl+Z。重新运行上述程序,在家输入中按下Ctrl+D发现程序结束并显示了你在按下Ctrl+D之前的所有字符。