fseek函数、ftell函数、rewind函数详解

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版权协议,转载请附上原文出处链接和本声明。