fseek函数、ftell函数、rewind函数详解
一、fseek函数
fseek函数是C语言中对文件的操作函数
在Cplusplus.com中对fseek的定义:
其中第一个参数stream接受的是一个文件指针,offset是你的偏移量,origin是你的起始位置
其位置有三种选择
SEEK_SET是文件的起始位置,即第一个元素。
SEEK_CUR是文件当前位置。
SEEK_END是文件结尾,这里不是最后一个元素,而是末尾元素的后一位。
下面是对fseek函数的使用案例,体会一下:
事先已经创建好一个文件,里面内容为"abcdef"
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
FILE* pf = fopen("data.txt", "r");
if (pf == NULL)
{
perror("fopen");
return;
}
fseek(pf, 1, SEEK_SET);
int a = fgetc(pf);
printf("%c\n", a);
fclose(pf);
return 0;
}


因为这里起始位置是末端,所以要向左移动,第二个参数就是负数

起始偏移量为第一个元素,所以当前偏移量就是第一个
二、ftell函数
在Cplusplus.com中对ftell的定义:
这个函数的意思就是计算出现在位置文件中的偏移量是多少
返回值是long int。
直接看代码:

三、rewind函数
在Cplusplus.com中对rewind的定义:
这个函数就是将流的位置设置为开头
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
FILE* pf = fopen("data.txt", "r");
if (pf == NULL)
{
perror("fopen");
return;
}
fseek(pf, 5, SEEK_SET);
long a = ftell(pf);
printf("%ld\n", a);
rewind(pf);
a = ftell(pf);
printf("%ld\n", a);
fclose(pf);
return 0;
}

版权声明:本文为m0_56138343原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。