文本文件和二进制文件,文件读取结束的判定,文件缓冲区

文本文件和二进制文件:

数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是 二进制文件
如果要求在外存上以 ASCII 码的形式存储,则需要在存储前转换。以 ASCII 字符的形式存储的文件就是 本文件
一个数据在内存中是怎么存储的呢?
字符一律以 ASCII 形式存储,数值型数据既可以用 ASCII 形式存储,也可以使用二进制形式存储。
如有整数 10000 ,如果以 ASCII 码的形式输出到磁盘,则磁盘中占用 5 个字节(每个字符一个字节),而
二进制形式输出,则在磁盘上只占 4 个字节( VS2013 测试)。
二进制文件打开方式:
文件读取结束的判定:
被错误使用的 feof
牢记:在文件读取过程中,不能用 feof 函数的返回值直接用来判断文件的是否结束。
而是 应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束
1. 文本文件读取是否结束,判断返回值是否为 EOF fgetc ),或者 NULL fgets
例如:
fgetc 判断是否为 EOF (-1)
fgets 判断返回值是否为 NULL (0)  .
ferror —— 在文件读取结束后用来判断文件在读取过程中是否发生错误结束
feof —— 在文件读取结束后用来判断文件在读取过程中是否遇到结束标志而结束
2. 二进制文件的读取结束判断,判断返回值是否小于实际要读的个数。
例如:
fread 判断返回值是否小于实际要读的个数。
fread要求读取count个大小位size个字节的数据
如果读取到count个数据,函数返回count
如果没有读取到count个数据,返回真实读取到的完整的数据个数
文件缓冲区:
ANSIC 标准采用 缓冲文件系统 处理的数据文件的,所谓缓冲文件系统是指系统自动地在内存中为程序
中每一个正在使用的文件开辟一块 文件缓冲区 。从内存向磁盘输出数据会先送到内存中的缓冲区,装
满缓冲区后才一起送到磁盘上。如果从磁盘向计算机读入数据,则从磁盘文件中读取数据输入到内存缓
冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓冲区的大小根
C 编译系统决定的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值