fseek 和fread、fwrite的区别

#include"stdio.h"

fseek(文件类型指针fp,位移量,起始点);

  函数功能:把与fp有关的文件位置指针放到一个指定位置其中,“位移量”是long型数据,它表示位置指针相对于“起始点”移动的字节数。如果位移量是一个正数,表示从“起始点”开始往文件尾方向移动;如果位移量是一个负数,则表示从“起始点”开始往文件头方向移动。 

起始点不能任意设定,它只能是在stdio.h中定义的三个符号常量之一

起始点

对应的数字

  代表的文件位置

SEEK_SET

0

  文件开头

SEEK_CUR

1

  文件当前位置

SEEK_END

2

  文件末尾

      例如:  fseek(fp,50L,0);或fseek(fp,50L,SEEK_SET);    其作用是将位置指针移到离文件头50个字节处。

ftell调用形式:

    #include"stdio.h"

    long ftell(fp);

    函数功能:得到流式文件中的当前位置,其返回值是当前位置相对于文件开头的字节数。

    返回值:出错时返回-1L。

size_t   fread(   void   *buffer,   size_t   size,   size_t   count,   FILE   *stream   );  

  buffer   是读取的数据存放的内存的指针  

  size       是每次读取的字节数  

  count     是读取次数  

  strean   是要读取的文件的指针  

  例如   从文件fp里读取100个字节   可用以下语句     

  fread(buff,100,1,fp)  

  fread(buff,50,2,fp)  

  fread(buff,1,100,fp)   

如果想实现从某个文件中一次次N个字节般读出来,那建议不要用

             read = fread(buff,N,1,data_file);

       因为就算当文件的字节数比N大,但这时strlen(buff)绝不是N个字节大小!!也不是read个字节大小!!

查帮助文档,可知,read是指成功读入的单元块数,这里对应的就是,read要么是1,要么是0(由第三个参数决定)!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值