目录
以下函数的头文件都是<stdio.h>
fseek函数
fseek函数的作用
移动文件指针到指定的位置
#include<stdio.h>
int main()
{
FILE* fp = fopen("data.txt", "r"); //打开一个文件指针,以r(可读)的方式打开data.txt这个文件,使用的是相对路径
fseek(fp, 1, SEEK_CUR);
if (fp != NULL) //判断是否开辟成功
{
printf("%c", fgetc(fp)); //读取一个字符
fclose(fp); //关闭程序
}
return 0;
}
文件中的内容为abcde,我们向后偏移了一个字节,所以打印了b
fseek函数的返回值和参数
返回值:如果移动位置成功则返回0,否则返回一个非0数
参数:stream,类型是FILE*,想要被改变的文件指针
offset,类型是long,是想移动的字节数,想向左移动为-某个数,向右为+某个数
origin,类型是int,代表从哪个位置开始移动,有三种选择,如下
SEEK_CUR
从当前文件指着进行移动
SEEK_END
从文件末尾开始移动,只能向前移动,-某个数
SEEK_SET
从文件开始位置开始移动,只能向后移动,+某个数
ftell函数
ftell函数的作用
获得当前文件的位置(偏移量)
#include<stdio.h>
int main()
{
FILE* fp = fopen("data.txt", "r"); //打开一个文件指针,以w(可写入)的方式打开data.txt这个文件,使用的是相对路径
fseek(fp, 1, SEEK_CUR);
if (fp != NULL) //判断是否开辟成功
{
printf("%d", ftell(fp)); //检测fp指针的偏移量
fclose(fp); //关闭程序
}
return 0;
}
返回了1,说明fp指针的偏移量为1
ftell函数的返回值和参数
返回值:返回偏移量,出错返回-1
参数:stream,类型是FILE*,为想要被查询位置的文件指针
rewind函数
rewind函数的作用
将文件指针重新定位到文件的开头
#include<stdio.h>
int main()
{
FILE* fp = fopen("data.txt", "r"); //打开一个文件指针,以w(可写入)的方式打开data.txt这个文件,使用的是相对路径
fseek(fp, 1, SEEK_CUR);
if (fp != NULL) //判断是否开辟成功
{
printf("%d\n", ftell(fp)); //测试fp指针的偏移量
rewind(fp);
printf("%d\n", ftell(fp)); //测试fp指针的偏移量
fclose(fp); //关闭程序
}
return 0;
}
发现rewind函数果然将文件指针重新定位到文件的开头了
rewind函数的返回值和参数
返回值:没有返回值
参数:stream,类型是FILE*,想要将文件指针重新定位到文件开头的文件指针