#include <stdio.h>
typedef struct student
{
int sid;
char name[10];
char address[10];
}STUDENT;
//把结构体变量s 写入文件filename
void myfwrite(char * filename,STUDENT s[],int n)
{
FILE * p;
p=fopen(filename,"wb");
if(p==NULL)
{
printf("can not open!\n");
return;
}
fwrite(s,sizeof(STUDENT),n,p);
fclose(p);
}
//从文件中读取第一个学生信息,到结构体变量s中
void myfread(char * filename,int n,STUDENT *s)
{
FILE * p;
STUDENT t;
p=fopen(filename,"rb");
if(p==NULL)
{
printf("can not open!\n");
return;
}
fseek(p,(n-1)*sizeof(STUDENT),0);//将位置指针移到第n个学生数据块位置
fread(s,sizeof(STUDENT),1,p);
fclose(p);
}
int main()
{
STUDENT s1[5]={
{1000,"Ih","cs"},
{1001,"Ii","cd"},
{1002,"Io","cf"},
{1003,"Iy","cg"},
{1004,"Ir","ch"}
};
STUDENT t;
myfwrite("my.dat", s1,5);
myfread("my.dat",4,&t);
printf("%d %s %s\n",t.sid,t.name,t.address);
}