×

fseek

fseek(fseek函数)

admin admin 发表于2023-04-13 08:39:09 浏览79 评论0

抢沙发发表评论

本文目录一览:

C语言中,fseek函数怎么控制移动的方向?怎么往前或往后,最好能有个例子。 谢谢!

fseek有三个参数,第1个是文件句柄,通过打开文件时得到;第2个就是移动的字节数,这个数可以是正的,就是拍世向后(文件尾部)移动,也可以是负的,即向前(文件头部)移动;第3个参数指明从哪里移动,如果写SEEK_SET就是从文件头部移动多少字迟贺型节,如果写SEEK_END则是从尾部开始移动,SEEK_CUR则是从当前位置移动。

比如

要将文件指针移动到文件开始的第24字节位置:fseek(fp,24,SEEK_SET);

移动到文件码猜尾部向前50字节:fseek(fp,-50,SEEK_SET);

在当前位置移动8个字节(跳过8个字节数据):fseek(fp,8,SEEK_CUR);

在当前位置向前移动16个字节(准备重新读取数据):fseek(fp,-16,SEEK_CUR);

在C语言中fseek()的功能

fseek()是重定位流(数据流/文件)上的文件内部位置指针。

注意:文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变或指向别的文件。

如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset取值大于等于2*1024*1024*1024,即long的正数范围2G),则不改变stream指向的位置,函数返回一个非0值。-fseek

扩展资料:

注意事项

fseek函数的文件指针,应该为已经打开的文件。如果没有打开的文罩备嫌件,那么将会出现错误。 fseek函数也可以这样理解,相当于在文件当中定位。

这样在读取规律性存储文件时可以利用其OFFSET偏移物手量读取文件上任意的内容。

fseek函数一般用于二进制文件,也可以用于文本文件。用于文本文件操滚蔽作时,需特别注意只有fseek(fp, 0, SEEK_SET) 和 fseek(fp, ftell(fp), SEEK_SET)能确保结果符合预期。-fseek

参考资料来源:百度百科-fseek

fseek问题

fseek的巧桥帆最后一个参数是指文件指针相对位置,2代表相当于SEEK_END,也就是从文消指件末尾开始。那么fseek(fp,0,2)也就是定位于文件末尾了,所以写入任何字符都是空。但是fseek(fp,-1,2)相对于从末尾想回孝雹倒一位,自己试试吧。-fseek

fseek()函数

int fseek(FILE *stream, long offset, int fromwhere);fseek 用于二进制方式打开的文件,移动文件读写指针位置.

fseek(in,-1L,1); -- 文件流in, 零点为当前指针位置,SEEK_CUR 就是 1, -1L -- 文件指针回退1个字节int fseek( FILE *stream, long offset, int origin );-fseek

第一个参数stream为文件指针

第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移

第三个参数origin设定从文件的掘裤哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET

SEEK_SET: 文件开头

SEEK_CUR: 当前位置

SEEK_END: 文件结尾

其中SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2.

简言之:判胡简

fseek(fp,100L,0);把fp指针做明移动到离文件开头100字节处;

fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;

 fseek(fp,100L,2);把fp指针退回到离文件结尾100字节处

fseek函数的用法是什么?

fseek函数用于重定位流(数据流/文件)上的文件内部位置指针。

函数原型int fseek(FILE *stream, long offset, int fromwhere);

参数:

stream为文件流的指针

offset 偏移量

fromwhere 起始位置

具体功能:如果执行成功,stream将指向以fromwhere(起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏虚罩移量)个字节的位置。如果执差庆闹行失败(比如offset超过文件自身大小),差念则不改变stream指向的位置。-fseek

扩展资料:

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

第一个参数file指针

第二个参数移动的偏移量

第三个参数移动到哪里

分别用3个宏

SEEK_SET 既0 文件开头

SEEK_CUR 既1 文件当前位置

SEEK_END 既2 文件结尾

但不推荐用数字 最好用宏

参考资料来源:百度百科-fseek