为了账号安全,请及时绑定邮箱和手机立即绑定

关注于文件读操作

关注于文件读操作

C
慕沐4487107 2018-05-17 16:51:19
fread函数怎么调用,怎样写
查看完整描述

1 回答

?
onemoo

TA贡献883条经验 获得超454个赞

你可以把 fread 的功能看作是“从文件流中读取一组对象到指定的数组中”

它的参数的含义是这样的

fread(
    一个指针,指向要保存读取内容的数组。是的,你可以把这个看作是存入数组中
    读取对象的大小,以字节为单位
    读取对象的个数
    文件流,函数就从这个流中读
)

它的返回值表示成功读取了多少个对象,可以通过“检查其是否等于应读个数”来判断是否成功读取。

不过注意:如果文件流中已经没有内容了,fread 也会返回小于应读个数的值或 0。所以返回值不等于应读个数不一定就是读取失败,也许是读到文件末尾了,应该用 feof 或 ferror 做进一步判断。


比如,假设文件流 fp 中存了一组(比如 3 个)int 数据,你就可以这样读取:

int data[3];  // 先声明一个能存 3 个 int 的数组,后面数据会存到这里
size_t count = fread(data, sizeof(int), 3, fp);
if (count == 3)
    // 通过返回值判断为成功读取了 3 个 int


虽然我把这个解说成读取数组,当然,只读取一个对象也没问题。假设上面例子中只读一个 int:

int data;  // 数据会存到这个 data 里
if (fread(&data, sizeof(int), 1, fp) == 1)  // 第一个参数传入 data 的地址即可
    // 根据返回值作判断


查看完整回答
1 反对 回复 2018-05-22
  • 1 回答
  • 0 关注
  • 908 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信