fseek:根据文件指针的位置和偏移量来定位文件指针。
int
fseek
(
FILE
*
stream
,
long int
offset
,
int
origin
);
FILE
*
stream:文件指针
long int
offse:相对起初位置的偏移量
int
origin:起初位置
origin有三个位置:1.SEEK_CUR文件指针当前位置
2.SEEK_END文件末尾的位置
3.SEEK_SET文件开始的位置
使用方法如下:
int main()
{
FILE* pf = fopen("test.txt", "w");
if (pf == NULL)
{
perror("fopen:");
return 1;
}
fputs("this is an example", pf);
fseek(pf, -3, SEEK_CUR);
fputs("sam", pf);
fclose(pf);
pf = NULL;
}
刚开始放入文件的内容
修改文件的内容
ftell:返回文件指针相对于起始位置的偏移量
long int
ftell
(
FILE
*
stream
);
具体使用如下:
int main()
{
FILE* pf = fopen("test.txt", "w");
if (pf == NULL)
{
perror("fopen:");
return 1;
}
fputs("this is an example", pf);
fseek(pf, -3, SEEK_CUR);
int sz = ftell(pf);
printf("%d", sz);
fputs("sam", pf);
fclose(pf);
pf = NULL;
}
rwind:让文件指针回到起始位置
void rewind ( FILE * stream );
int main()
{
FILE* pf = fopen("test.txt2", "w+");
if (pf == NULL)
{
perror("fopen:");
return 1;
}
char ch[] = "abcdef";
fputs(ch, pf);
int sz=ftell(pf);//此时文件指针的位置
printf("%d\n", sz);
rewind(pf);//将文件指针放到起始位置
fread(pf, 1, 6, pf);//从文件中读取
printf("%s", ch);
fclose(pf);
pf = NULL;
}