2 jinaoasher jinaoasher 于 2017.08.30 14:03 提问

C语言使用fread()函数的时候为什么不是从文档开头读取?

原函数:
图片说明
文件内容:
图片说明
运行结果:
图片说明

函数原型:
unsigned fread(void *buffer,unsigned size,unsigned count,FILE *fp);
根据我的理解是从fp指向的文件首部开始读起,再传入buffer所指向的待存入的数据块首址。
另外我试了一下,当文件中只包含一组数据的时候,还会出现乱码情况,如图:
图片说明

新人一个,求各位大神解答

1个回答

Steven_eleven
Steven_eleven   2017.08.30 14:14
已采纳

fread是一个函数。从一个文件流中读数据,最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0。
函数原型
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
参 数
buffer
用于接收数据的内存地址
size
要读的每个数据项的字节数,单位是字节
count
要读count个数据项,每个数据项size个字节.
stream
输入流
返回值
实际读取的元素个数。如果返回值与count不相同,则可能文件结尾或发生错误。从ferror和feof获取错误信息或检测是否到达文件结尾。

jinaoasher
jinaoasher 感谢回答!请问fread()读取的时候是严格按照size的大小取的吗?:p
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片