fseek 和fread、fwrite的区别

fseek freadfwrite

 

#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(由第三个参数决

定)!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值