文件的随机读写

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

int fseek ( FILE * stream , long int offset , int origin );
FILE * stream:文件指针
long int offse:相对起初位置的偏移量
int origin:起初位置
origin有三个位置:1.SEEK_CUR文件指针当前位置
2.SEEK_END文件末尾的位置
3.SEEK_SET文件开始的位置
使用方法如下:
int main()
{
	FILE* pf = fopen("test.txt", "w");
	if (pf == NULL)
	{
		perror("fopen:");
		return 1;
	}
	fputs("this is an example", pf);
	fseek(pf, -3, SEEK_CUR);
	
	fputs("sam", pf);
	fclose(pf);
	pf = NULL;
}

刚开始放入文件的内容

修改文件的内容

 

ftell:返回文件指针相对于起始位置的偏移量 

long int ftell ( FILE * stream );

具体使用如下:

int main()
{
	FILE* pf = fopen("test.txt", "w");
	if (pf == NULL)
	{
		perror("fopen:");
		return 1;
	}
	fputs("this is an example", pf);
	fseek(pf, -3, SEEK_CUR);
	int sz = ftell(pf);
	printf("%d", sz);
	fputs("sam", pf);
	fclose(pf);
	pf = NULL;
}

rwind:让文件指针回到起始位置

void rewind ( FILE * stream );  

int main()
{
	FILE* pf = fopen("test.txt2", "w+");
	if (pf == NULL)
	{
		perror("fopen:");
		return 1;
	}
	char ch[] = "abcdef";
	
	fputs(ch, pf);
	int sz=ftell(pf);//此时文件指针的位置
	printf("%d\n", sz);
	rewind(pf);//将文件指针放到起始位置
	fread(pf, 1, 6, pf);//从文件中读取
	printf("%s", ch);
	fclose(pf);
	pf = NULL;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指挥部在下面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值