C语言fread函数读取的个数怎么决定

fread函数中的count部分填的数字由什么决定

函数原型:
size_t fread(void *buffer, size_t size, size_t count, FILE *stream);
fread是用来读取块数据的,主要就是结构体类型的数据。
因此,它的count是结构体对象的数量,size是sizeof(struct xxx),还有就是读取二进制文件
,使用fread可以一次性把整个二进制文件读取到内存缓冲区当中,那么size就是文件的字节大小
了,而count则设置为1;也可以一次读取一个字符的数据即size=1,那么读取的次数count就是
整个文件的大小了。因此,读取的次数count要看实际情况来决定,没有定式的,要灵活运用吧。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-27

如果是按结构体读 或者按变量类型读 可以用文件总大小除以sizeof(元素结构类型)

比如写入 的是int值 可以获得文件大小然后除以sizeof(int)

如果写入的是结构体 那么就是文件大小除以sizeof(结构体)

int main()
{
FILE *fp;
fp=fopen( "file.txt", "r");
fseek(fp, 0L, SEEK_END );
printf(" file size = %d\n", ftell(fp) ); //文件大小
return 0;
}

相似回答