C语言 ——— 文件的随机读写

目录

学习并使用fseek函数​编辑

学习并使用ftell函数​编辑

学习并使用rewind函数​编辑


学习并使用fseek函数

函数的功能:

根据文件指针的位置和偏移量来定位文件指针

函数的参数:

FILE* stream:文件类型的指针

long int offset:偏移量

int origin:

SEEK_SET 表示从文件开始位置偏移 ;SEEK_CUR 表示从文件当前位置偏移 ;SEEK_END 表示从文件的结束位置偏移(注意:往前偏移时,偏移量为负数

函数的返回值:

该函数偏移成功,就会返回0,否则返回非0值 

代码演示:

#include<stdio.h>
int main()
{
	// 以读的方式打开 "text.txt" 文件
	FILE* pf = fopen("text.txt", "r");

	// 判断是否成功打开
	if (pf == NULL)
	{
		perror("fopen");
		return -1;
	}

	// 将文件指针偏移到 'f' 字符处(当前文件存储了 "abcdefghi")
	int ret = fseek(pf, 5, SEEK_SET);

	// 判断是否偏移成功
	if (ret != 0)
	{
		perror("fseek");
		return -2;
	}

	// 打印 'f' 字符
	printf("%c\n", fgetc(pf));

	// 关闭文件
	fclose(pf);
	pf = NULL;

	return 0;
}

代码验证:


学习并使用ftell函数

函数的功能:

计算文件指针当前位置到起始位置的偏移量 

函数的参数:

FILE* stream:指向文件的指针

函数的返回值:

成功后返回偏移量,失败返回 -1L

代码演示:

#include<stdio.h>
int main()
{
	// 以读的方式打开 "text.txt" 文件
	FILE* pf = fopen("text.txt", "r");

	// 判断是否成功打开
	if (pf == NULL)
	{
		perror("fopen");
		return -1;
	}

	// 当前的文件指针是指向文件起始位置的,所以偏移量为0
	printf("%d\n", ftell(pf));

	fgetc(pf);

	// 在获取了一个字符后,文件指针会指向下一个位置,所以偏移量是1
	printf("%d\n", ftell(pf));

	return 0;
}

代码验证:


学习并使用rewind函数

函数的功能:

让文件指针的位置回到文件的起始位置

函数的参数:

FILE* stream:指向文件的指针

代码演示:

#include<stdio.h>
int main()
{
	// 以读的方式打开 "text.txt" 文件
	FILE* pf = fopen("text.txt", "r");

	// 判断是否成功打开
	if (pf == NULL)
	{
		perror("fopen");
		return -1;
	}

	// 当前的文件指针是指向文件起始位置的,所以偏移量为0
	printf("%d\n", ftell(pf));

	fgetc(pf);

	// 在获取了一个字符后,文件指针会指向下一个位置,所以偏移量是1
	printf("%d\n", ftell(pf));

	// 让文件指针的位置回到文件的起始位置 - 0
	rewind(pf);
	printf("%d\n", ftell(pf));

	return 0;
}

代码验证:

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值