📅  最后修改于: 2020-09-25 08:23:41             🧑  作者: Mango
fseek() 函数在
int fseek(FILE* stream, long offset, int origin);
如果以二进制模式打开文件,则文件指针的新位置将与原点精确偏移字节。
如果以文本模式打开文件,则offset的支持值为:
如果流是面向宽的,则同时应用文本流和二进制流的限制,即,使用SEEK_SET允许ftell的结果,并且从SEEK_SET和SEEK_CUR允许零偏移,但不允许SEEK_END。
fseek 函数还撤消ungetc的影响并清除文件结束状态(如果适用)。
如果发生读取或写入错误,则会设置错误并且文件位置不受影响。
Value | Description |
---|---|
SEEK_SET | Beginning of file |
SEEK_CUR | Current position of file pointer |
SEEK_END | End of file |
#include
int main()
{
FILE* fp = fopen("example.txt","w+");
char ch;
fputs("Erica 25 Berlin", fp);
rewind(fp);
printf("Name: ");
while((ch=fgetc(fp))!=' ')
putchar(ch);
putchar('\n');
printf("Age: ");
fseek(fp,10,SEEK_SET);
while((ch=fgetc(fp))!=' ')
putchar(ch);
putchar('\n');
printf("City: ");
fseek(fp,15,SEEK_SET);
while((ch=fgetc(fp))!=EOF)
putchar(ch);
putchar('\n');
fclose(fp);
return 0;
}
运行该程序时,输出为:
Name: Erica
Age: 25
City: Berlin