📅  最后修改于: 2023-12-03 15:14:24.977000             🧑  作者: Mango
在C语言中,我们可以使用fseek()函数来移动文件指针的位置,这个函数通常会和文件的读写操作一起使用。fseek()能够将文件指针移动到指定的位置,这样我们就可以从文件的任意位置开始读取或写入数据。
int fseek(FILE *stream, long int offset, int origin);
其中,stream 表示文件指针,offset 表示指针偏移量,origin 表示指向偏移量的方向。
偏移量 offset 的取值可以是正数也可以是负数,表示相对于origin的偏移量。偏移量的单位是字节(byte),可为long int类型。origin 可以取以下三个值之一:
该函数返回值为成功(0)或失败(非0)。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
long int offset;
fp = fopen("test.txt", "r");
if(fp == NULL)
{
printf("无法打开文件\n");
exit(1);
}
// 将文件指针从开头移动到第10个字节的位置
offset = fseek(fp, 10L, SEEK_SET);
if(offset != 0)
{
printf("移动文件指针出错\n");
exit(1);
}
// 从第10个字节的位置开始读取文件内容
char c = fgetc(fp);
while(c != EOF)
{
printf("%c", c);
c = fgetc(fp);
}
fclose(fp);
return 0;
}
上述代码中,我们打开了一个名为test.txt的文件,并将文件指针移动到了第10个字节的位置。然后我们使用fgetc()函数来读取该位置后的文件内容。