c语言fseek函数

C语言的文件位置是fseek函数fseek(文件指针,位偏移量,起始点);起点c提供了文件的开始。

文件的当前位置

文件末尾的三个值分别对应0。

一个

2、位偏移量是多少字节而不是几行。C语言好像不支持以线的形式移动指针。

例如:fseek(fp,100L,0);将位置指针从文件头移动100字节。

如果第二个参数为负,向后多少字节?

fseek()在C语言中的作用 Fseek()是指向文件在重定位流(数据流/文件)上的内部位置的指针。

注意:文件指针指向文件/流。位置指针指向文件内部的字节位置,它会随着文件的读取而移动,文件指针不会改变或指向其他文件,除非重新分配。

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

扩展数据:

需要注意的事项

fseek函数的文件指针应该是一个打开的文件。如果没有打开的文件,将会出现错误。fseek函数也可以这样理解,相当于在文件中定位。

这样,当读取一个定期存储的文件时,可以使用它的偏移量来读取文件上的任何内容。

fseek函数通常用于二进制文件,也可用于文本文件。用于文本文件操作时,需要特别注意只有fseek(fp,0,SEEK_SET)和fseek(fp,ftell(fp),SEEK_SET)才能保证结果符合预期。

参考来源:百度百科-fseek

C语言fseek(fp,offset,SEEK_SET)是什么意思? 首先确保文件已经打开,否则会报错。

Fseek是一个函数。

Fp:指针

偏移:偏移

Seek_set:文件开头

一般来说,将指针移动到文件开头,偏移量为“2”(你设置多少,正数之后,负数之前,我的意思是移动到最后2个字节)。

如何理解C语言的fseek()函数中的起始位置和当前位置? 这个问题要从文件结构的数据项构成说起:struct _ iobuf { char * _ ptr//文件输入int _cnt的下一个位置;//当前缓冲区的相对位置是char * _ base//引用基位置(即文件的起始位置)int _ flag//文件标志int _ file//文件有效性验证int _ charbuf//检查缓冲区状态,如果没有缓冲区,则不读取int _ bufsiz//文件大小char * _ tmpfname//临时文件名}文件;(注:这是vc 6.0中对FILE的定义)用fopen()函数打开文件后,系统会自动创建一个数据块来存储上述信息。其中“char * _ base”指向缓冲区中文件头的位置(即fseek()函数第三个参数origin的SEEK_SET常量)" char * _ ptr"减一是文件指针的当前位置(即fseek()函数第三个参数origin的SEEK_CUR常量)。函数原型:int fseek (file * stream,long offset,int origin)中的offset参数是一个相对变量,相对于原点。比如int fseek (FP,100 l,seek _ set);它是基于文件头向后移动100个字节。其原理是对内存文件中文件结构的元素进行如下操作。_ ptr = file。_ base+100;int fseek( fp,100L,SEEK _ CUR);即基于文件的当前位置向后移动100字节,对应:file。_ ptr+= 100;剩下的我就不说了。明白了吗?

C语言中,fseek函数是如何控制运动方向的?如何前进或后退,最好有个例子。谢谢你 Fseek有三个参数,第一个是文件句柄,打开文件时获取;第二个是移动的字节数,可以是正数,即向后移动(在文件的末尾),也可以是负数,即向前移动(在文件的开头);第三个参数表示从哪里开始。写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);

相关文章

发表新评论