c语言中函数调用语句fseek,对函数调用语句fseek(fp,10,1)的含义?

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

rulice168977

推荐于 2017.09.06

fseek

函数名: fseek

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

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

程序例:

#include

long filesize(FILE *stream);

int main(void)

{

FILE *stream;

stream = fopen("MYFILE.TXT", "w+");

fprintf(stream, "This is a test");

printf("Filesize of MYFILE.TXT is %ld bytes\n", filesize(stream));

fclose(stream);

return 0;

}

long filesize(FILE *stream)

{

long curpos, length;

curpos = ftell(stream);

fseek(stream, 0L, SEEK_END);

length = ftell(stream);

fseek(stream, curpos, SEEK_SET);

return length;

}

int fseek( FILE *stream, long offset, int origin );

第一个参数stream为文件指针,offset为偏移,比如你要从文件的第10000个字节开始读取的话,offset就应该为10000,origin 为标志是从文件开始还是末尾。

origin 的取值:

SEEK_CUR Current position of file pointer

SEEK_END End of file

SEEK_SET Beginning of file

那么fseek(fp,-size,1)中-size和1是否应理解为,从文件倒说第一个文件开始读取

fseek最后一个参数最好不要直接指定一个数值,比如1,

要使用SEEK_CUR,SEEK_END,SEEK_SET

第二个参数表示相对于第三个参数的偏移,整数表示正向偏移,负数表示负向偏移,比如

fseek(fp,-size,SEEK_CUR);

从当前位置向文件后方(比如文件有123三个数字,那么2在三的后方,3在2的前方)

fseek(fp,size,SEEK_SET);

从文件开始位置向前移动size

这里默认size是正数

00分享举报

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值