C语言函数fseek, fread, ftell的使用

(1) int fseek(FILE *stream, long offset, int fromwhere);fseek 用于二进制方式(rb)打开的文件,移动文件读写指针位置.
fseek(in,-1L,1);   -- 文件流in, 零点为当前指针位置,SEEK_CUR 就是 1,  -1L -- 文件指针回退1个字节int fseek( FILE *stream, long offset, int origin );
  第一个参数stream为文件指针
  第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移
  第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
  SEEK_SET: 文件开头
  SEEK_CUR: 当前位置
  SEEK_END: 文件结尾
  其中SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2.
  简言之:
  fseek(fp,100L,0);把fp指针移动到离文件开头100字节处;
  fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;
    fseek(fp,100L,2);把fp指针退回到离文件结尾100字节处。

(2) fread

  功 能: 从一个流中读数据

  函数原型: size_tfread(void*buffer,size_tsize,size_tcount,FILE*stream); 

  参 数:

  1.用于接收数据的地址(指针)(buffer

  2.单个元素的大小(size) :单位是字节而不是位,例如读取一个整型数就是2个字节

  3.元素个数(count

  4.提供数据的文件指针(stream)

  返回值:成功读取的元素个数

(3)  ftell

  函数用于得到文件位置指针当前位置相对于文件首的偏移字节数.

(4) 例子

// read the file from hardware
FILE *fp = fopen(FileName, Mode); // Mode:rb (二进制读写)
CC_BREAK_IF(!fp);

fseek(fp,0,SEEK_END);
*pSize = ftell(fp);
fseek(fp,0,SEEK_SET);
pBuffer = new unsigned char[*pSize];
*pSize = fread(pBuffer,sizeof(unsigned char), *pSize,fp);
fclose(fp);


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值