在C语言中fseek()的功能

Python010

在C语言中fseek()的功能,第1张

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

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

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

扩展资料:

注意事项

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

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

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

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

#include <stdio.h>

int main(void) {

FILE *stream

int c,n = 0,filesize

stream = fopen("MYFILE.TXT", "wt")

fprintf(stream, "This is a test\n")

fclose(stream)

stream = fopen("MYFILE.TXT", "r+")

while(n < 4) {

filesize = 0

while((c = fgetc(stream)) != EOF) {

printf("%c",c)

++filesize

}

fseek(stream,-(++filesize),SEEK_CUR)

fseek(stream,0,SEEK_CUR)

++n

}

fclose(stream)

return 0

}

***** fseek(stream,0,SEEK_CUR)*****

这一句很重要(专家说的),用来改变文件的读状态(我也不明白这个状态),在修改数据文件时,这一句貌似废话的话所起的作用更是重要了。

首先得保证文件已经打开,不然会报错。

fseek是一种函数

fp :指针

offset:偏移量

seek_set:文件开头

总体意思,将指针移到文件开头,偏移量为“2”(自己设置多少,正后,负前,我设置的意思是移动到后2个字节处)