C语言文件的随机读写

 文件的随机读写

实现随机文件的读写的关键是要按要求移动位置指针,这称为文件的定位

文件定位函数 rewind 和 fseek

移动文件内部位置指针的函数主要有 rewind() 和 fseek()

rewind()用来将位置指针移动到文件的开头,前面以多次使用过, 他的原型为:

                                      void rewind(FILE *fp);

fseek()用来将位置指针指到任意的位置,他的原型为:

                                    int fseek(FILE *fp, long offset, int origin); 文件指针, 偏移量, 起始位置

起始点        常量名         常量值

文件开头  SEEK_SET     0

文件位置  SEEK_CUP    1

文件末尾  SEEK_END     2


文件的随机读写

 在移动文件指针之后, 就可以用前面介绍的任何一种读写函数进行读写


#include <stdio.h>
#include <stdlib.h>
#define N 3

struct student 
{
	char name[30];//姓名
	int number; //学号
	int age; //年龄
	float score; //成绩
} boys[N], boy, *pboys;

int main(void)
{
	FILE *fp;//文件指针
	pboys = boys;
	if((fp = fopen("d:\\demo.txt", "wb+")) == NULL)
	{
		printf("Cannot open file, press any key to exit it!\y");
		system("pause");
		exit(1);
	}
	else
	{
		printf("input data : \n");
		for(int i = 0; i<N; i++, pboys++)
		{
			scanf("%s %d %d %f", pboys->name, &pboys->number, &pboys->age, &pboys->score);
		    
		}
		fwrite(boys, sizeof(struct student), N, fp);
		fseek(fp, sizeof(struct student), SEEK_SET);
		fread(&boy, sizeof(struct student), 1, fp);
		printf("%s %d %d %f\n", boy.name, boy.number, boy.age, boy.score);
		fclose(fp);
	}
	return 0;
	
}

结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值