现在的位置: 首页 > 综合 > 正文

[C++]fread/fwrite/fseek/ftell

2018年02月03日 ⁄ 综合 ⁄ 共 1027字 ⁄ 字号 评论关闭

作者:彭军

fread(buffer,size,count,fp);   用来读入一个数据块
fwrite(buffer,size,count,fp); 用来写入一个数据块

参数说明:
(1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。
(2)size:要读写的字节数;
(3)count:要进行读写多少个size字节的数据项;
(4)fp:文件型指针。

举例:

1.fread(&id,1,10,f)就是把f里面的值读到id里面,每次读1个字节,一共读10次,或者把id里面的值都读完,不到10次也会停止。

2.fwrite(&id,1,10,f)就是把id里面的值写到f里面,每次读1个字节,一共读10次或是fwrite(&id,10,1,f)就是把id里面的值写到f里面,每次写10个字节,一共写1次。


功   能: 重定位流上的文件指针

用   法: int fseek(FILE *stream, long offset, int fromwhere)

函数功能:把与fp有关的文件位置指针放到一个指定位置。

参数说明:stream为一个文件指针,即其类型为FILE*的变量;offset是偏移量,是相对于后面的起始点fromwhere的;fromwhere为偏移的起始点。其中,“位移量”是long型数据,它表示位置指针相对于“起始点”移动的字节数。如果位移量是一个正数,表示从“起始点”开始往文件尾方向移动;如果位移量是一个负数,则表示从“起始点”开始往文件头方向移动。“起始点”不能任意设定,它只能是在stdio.h中定义的三个符号常量之一:

起始点

对应的数字

代表的文件位置

SEEK_SET

0 文件开头

SEEK_CUR

1 文件当前位置

SEEK_END

2 文件末尾

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

补充说明:如果需要将文件指针的位置移动到文件的开始,可以如此:fseek(fp,0L,0);如果需要将文件指针的位置移动到文件的结尾,可以如此:fseek(fp,0L,2);


ftell函数是用来获取文件的当前读写位置;

函数原型: long ftell(FILE *fp)

函数功能:得到流式文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数.

ban=ftell(fp); 是获取fp指定的文件的当前读写位置,并将其值传给变量ban.

抱歉!评论已关闭.