fread函数详解 原创 C开发 2022年1月26日 10:50 夏至未至 2099 当前内容 1412 字,在路上,马上到,马上到 ### 函数原型 size_t fread(void *buffer, size_t size, size_t count, FILE *stream) > buffer 是读取的数据存放的内存的指针(可以是数组,也可以是新开辟的空间,buffer就是一个索引) size 是每次读取的字节数 count 是读取次数 strean 是要读取的文件的指针 ### 举例示意 从文件fp里读取100个字节 可用以下语句 // 每次读100个,读一次 fread(buffer,100,1,fp) // 每次读50个,读两次 fread(buffer,50,2,fp) // 每次读1个,读100次 fread(buffer,1,100,fp) > 对读出的二进制流是不能用strlen()或者sizeof()求其长度和大小的。 ### 函数解读 fread可以读二进制文件,有时用字符方式去读文件不能读完整个文件,因为字符方式用特定的标记结尾的,读取时只要碰到该标记就自动结束。但是二进制方式就可以 ,函数fread()读取[num]个对象(每个对象大小为size(大小)指定的字节数),并把它们替换到由buffer(缓冲区)指定的数组. 数据来自给出的输入流. 函数的返回值是读取的内容数量... 另外,使用feof()或ferror()判断函数执行过程中发生哪些错误. ### 示例代码 void HelpMassage() { FILE *fp; int size = 0; char *ar ; //二进制方式打开文件 fp = fopen("lining.txt","rb"); if(NULL == fp) { printf("Error:Open input.c file fail!\n"); return; } if(ferror(fp)) printf("Error to read the file\n"); else printf("No error in reading\n"); //求得文件的大小 fseek(fp, 0, SEEK_END); size = ftell(fp); rewind(fp); //申请一块能装下整个文件的空间 ar = (char*)malloc(sizeof(char)*size); //读文件 fread(ar,1,size,fp);//每次读一个,共读size次 printf("%s",ar); fclose(fp); free(ar); printf("按任意键继续"); getchar(); getchar(); } 本文标题: fread函数详解 本文作者: 夏至未至 发布时间: 2022年1月26日 10:50 最近更新: 2023年8月18日 20:38 原文链接: 许可协议: 署名-非商业性-禁止演绎 4.0 国际(CC BY-NC-ND 4.0) 请按协议转载并保留原文链接及作者 fread(1) 上一个 基于哈夫曼编码完成的文件压缩及解压 下一个 fflush(stdin)与fflush(stdout) 当前文章评论暂未开放,请移步至留言处留言。