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是否应理解为,从文件倒说第一个文件开始读取,可是感觉好别扭,谁能告诉我啊 ~~谢谢
2 回答
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
fseek最后一个参数最好不要直接指定一个数值,比如1,
要使用SEEK_CUR,SEEK_END,SEEK_SET
第二个参数表示相对于第三个参数的偏移,整数表示正向偏移,负数表示负向偏移,比如
fseek(fp,-size,SEEK_CUR);
从当前位置向文件后方(比如文件有123三个数字,那么2在三的后方,3在2的前方)
fseek(fp,size,SEEK_SET);
从文件开始位置向前移动size
这里默认size是正数
蓝山帝景
TA贡献1843条经验 获得超7个赞
是的
int
fseek(FILE
*stream,
long
offset,
int
fromwhere);函数设置文件指针stream的位置。
如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。
实验得出,超出文件末尾位置,还是返回0。往回偏移超出首位置,返回-1,且指向一个-1的位置,请小心使用。
fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。
- 2 回答
- 0 关注
- 81 浏览
添加回答
举报
0/150
提交
取消