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

fread函数该如何运用呢?求高手指点一下?

fread函数该如何运用呢?求高手指点一下?

C C#
浮云间 2021-10-21 14:10:29
有一个二进制文件,我想把里面的一个八个字节的数读出来(其实就是1)然后我建立一个int a[];数组,然后调用fread(a,8,1,fp);fp是对应打开文件的指针,怎么就没读进去呢?我把数组改成double 后再读,就能读进去了,可是读的不是1,是一个接近0的小数,我就崩溃了,我的问题是,第二个参数,跟第一个参数有关系吗?八个字节的数到底怎么才能读出来?跪求高手解答!
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

c语言中fread函数语法为size_t fread( void *restrict buffer, size_t size, size_t count, FILE *restrict stream )。buffer是指向要读取的数组中首个对象的指针,size是每个对象的大小(单位是字节),count是要读取的对象个数,stream是输入流。通过fread函数可进行数据读取,返回成功读取的对象个数。


查看完整回答
反对 回复 2021-10-24
?
慕慕森

TA贡献1856条经验 获得超17个赞

fread函数可从文件中读取二进制数据

语法:

A = fread(fid, count)

A = fread(fid, count, precision)

其中fid为指针所指文件中的当前位置,count指读取的数据个数, precision表示以什么格式的数据类型读取数据。

例子:

fid = fopen('alphabet.txt', 'r');
c = fread(fid, 5)'
c =
65 66 67 68 69
fclose(fid);

程序说明:alphabet文件中按顺序存储着26个英文字母,读取文件之前要先打开文件,由于未指定读取数据的类型,所以程序指定默认类型为无符号字符型即uchar,65、66、67、68、69代表A、B、C、D、E,文件用完还要记得关闭文件,以便释放指针。


查看完整回答
反对 回复 2021-10-24
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

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


#include<stdio.h>#include<string.h>int main(void){    FILE*stream;    char msg[]="this is a test";    char buf[20];    if((stream=fopen("DUMMY.FIL","w+"))==NULL)    {        fprintf(stderr,"Cannot open outputfile.\n");        return 0;    }    fwrite(msg,1,strlen(msg)+1,stream);    fseek(stream,0,SEEK_SET);    fread(buf,strlen(msg)+1,1,stream);    printf("%s\n",buf);    fclose(stream);    return0;}



查看完整回答
反对 回复 2021-10-24
  • 3 回答
  • 0 关注
  • 471 浏览

添加回答

举报

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