文件指针偏移, rewind函数,ftell函数 , fseek函数【C】(zg)

文件指针偏移, rewind函数,ftell函数 , fseek函数

rewind 函数

在这里插入图片描述

如果一个文件具有读写属性,当我们写完文件,需要读的时候,此时会遇到文件 结尾现象。此时就需要 rewind。

ftell 函数

在这里插入图片描述

#include <stdio.h>
int main()
{
	FILE* pf = fopen("qq.txt","w+");
	fputs("abcdefg",pf);
	int n = ftell(pf);
	printf("%d", n);
	return 0;
}

执行结果为:
在这里插入图片描述

由于返回值是当前读写位置到文件头部的字节数字所以打印结果为7,所以我们可以通过这个函数求得文件大小。

fseek函数

在这里插入图片描述

常见的起始位置有宏定义:
在这里插入图片描述

其中 SEEK_SET,SEEK_CUR 和 SEEK_END 和依次为 0,1 和 2.简言之:
在这里插入图片描述代码演示:

#include <stdio.h>
int main()
{
		FILE* fp = fopen("sql.txt", "w+");
		fputs("123456789", fp);

		fseek(fp, -5, SEEK_END);
		int len = ftell(fp);
		printf("len = %d\n", len);
		return 0;
}

执行结果为:
在这里插入图片描述

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	FILE* pf = fopen("qq.txt","w+");
	fputs("abcdefg",pf);
	int n = ftell(pf);
	printf("%d\n", n);
	rewind(pf);
	n = ftell(pf);
	printf("%d\n", n);
	fseek(pf,0,SEEK_END);
	n = ftell(pf);
	printf("%d\n", n);
	fseek(pf, 2, SEEK_SET);
	n = ftell(pf);
	fseek(pf, -4, SEEK_END);
	n = ftell(pf);
	printf("%d\n", n);
	return 0;
}

执行结果为:
在这里插入图片描述

上面只是给出的一部里情况,读者可以根据函数说明验证参数的结果。

发布了84 篇原创文章 · 获赞 71 · 访问量 9098

猜你喜欢

转载自blog.csdn.net/qq_43648751/article/details/104204373