#include<stdio.h>
struct stu
{
char name[10]; /*学生姓名*/
int num; /*学生编号*/
int age; /*学生年龄*/
char addr[15]; /*学生住址*/
}stu1[2],stu2[2],*p,*q; /*定义结构体数组stu1和stu2,结构体指针p和q*/
void main()
{
FILE*fp;
char ch;
int i;
p=stu1; /*指针p指向结构体数组stu1*/
q=stu2; /*指针q指向结构体数组stu2*/
if((fp=fopen("e:\\stu_list","w+"))==NULL) /*以可写可读方式打开文件stu_list*/
{
printf("无法打开文件stu_list!");
exit(1);
}
printf("\n请输入两名学生的信息(姓名、编号、年龄、住址):\n");
for(i=0;i<2;i++,p++) /*从键盘录入2个学生信息,存放在stu1结构体数组中*/
scanf("%s%d%d%s",p->name,&p->num,&p->age,p->addr);
p=stu1; /*把结构体数组stu1中2个学生信息写入文件stu_list中*/
fwrite(p,sizeof(struct stu),2,fp);
rewind(fp); /*重新定位文件指针到文件头*/
/* 从文件stu_list中读取2个学生信息,存放到结构体数组stu2中*/
fread(q,sizeof(struct stu),2,fp);
printf("\n\n姓名\t编号 年龄 地址\n");
for(i=0;i<2;i++,q++) /*把结构体数组stu2中的2个学生信息按格式输出到屏幕*/
printf("%s\t%5d%7d %s\n",q->name,q->num,q->age,q->addr);
fclose(fp); /*关闭文件Stu_list*/
}