fseek():随机定位
此函数有三个参数:
参数1:
文件指针
参数2:
偏移量
<0:往前偏
>0:往后偏
参数3:
SEEK_SET:从文件头开始读
SEEK_CUR:从当前位置开始读
SEEK_END:从文件尾开始读
例1:读取文件第一行
#include<stdio.h>
int main(){
FILE * f;
char b[64];
f = fopen("f1.c","r");
if(!f){
printf("文件读取失败!");
return 1;
}
//读取文件第一行
fseek(f,0,SEEK_SET);
fgets(b,sizeof(b),f);
printf("\n%s",b);
fclose(f);
return 0;
}
例2:读取文件最后10个字符
#include<stdio.h>
int main(){
FILE * f;
char a;
f = fopen("f1.c","r");
if(!f){
printf("文件读取失败!");
return 1;
}
//读取文件最后10个字符
fseek(f,-10,SEEK_END);
while((a = fgetc(f)) != EOF){
printf("%c\n",a);
}
fclose(f);
return 0;
}
例3:从例1当前位置读取前10个字符
#include<stdio.h>
int main(){
FILE * f;
char a;
f = fopen("f1.c","r");
if(!f){
printf("文件读取失败!");
return 1;
}
//读取文件最后10个字符
fseek(f,-10,SEEK_END);
while((a = fgetc(f)) != EOF){
printf("%c\n",a);
}
//读取当前位置的前10个字符
fseek(f,-10,SEEK_CUR);
for(int i = 0;i < 10;i++){
a = fgetc(f);
printf("%c",a);
}
fclose(f);
return 0;
}
rewind():反绕
将文件指针指向文件开始位置,即rewind(f)等效于fseek(f,0,SEEK_SET)。