文件结束标志的一个奇怪现象 - C/C++ (STL/boost)

来源:百度文库 编辑:神马文学网 时间:2024/04/28 23:48:22
堆砌一些找到的资料,表示我有独立思考,不是老在依赖人

关于符号常量EOF
在对ASCII码文件执行读入操作时,如果遇到文件尾,
则读操作函数返回一个文件结束标志EOF(其值在头文件
stdio.h中被定义为-1)。
在对二进制文件执行读入操作时,必须使用
库函数feof()来判断是否遇到文件尾。


二进制文件没有文件结束符,你首先要抛弃文件符的思维定势,  
  上面我已提了,当文件读写位置超出文件目录中的指定的长度时,  
  feof()变为真,没有多么高深的东西。  
          只有文本文件以^z(26)为文件结束符,如果是以二进方式打开  
  时,仍然没有文件结束符,^z(26)后面的所有字节仍然可以读到  
          再不明白就不应该了


文件读入buffer后,文件的结束标志能读进去吗??
怎么可能读进去呢?:)
实际上,就是说你的文件读偏移等于文件长度了,就表示文件结束。read系列会检测到这个,然后给你返回一个值表示这个状态,
仅此而已。
对头,文件结束标志只是代表读取过程中的一个状态,而不是保存在文件中的一个或几个字节。