实验九 文件
目的与要求】
1.掌握文件和文件指针的概念以及文件的定义方法。
2.了解文件打开和关闭的概念和方法。
3.掌握有关文件的函数。
【上机内容】
【一般示例】
【例1】对data.dat文件写入100条记录。
#include <stdio.h>
main()
{FILE *fp;
int i;
float x;
fp=fopen("date.dat","w");
for(i=1;i<=100;i )
{scanf("%f",&x);
fprintf(fp,"%f\n",x);
}
fclose(fp);
}
【例2】设有一文件cj.dat存放了50个人的成绩(英语、计算机、数学),存放格式为:每人一行,成绩间由逗号分隔。计算三门课平均成绩,统计个人平均成绩大于或等于90分的学生人数。
#include <stdio.h>
main()
{FILE *fp;
int num;
float x , y , z , s1 , s2 , s3 ;
fp=fopen ("cj.dat","r");
{fscanf (fp,"%f,%f,%f",&x,&y,&z);
s1=s1 x;
s2=s2 y;
s3=s3 z;
if((x y z)/3>=90)
num=num 1;
}
printf("分数高于90的人数为:%.2d",num);
fclose(fp);
}
【例3】统计上题cj.dat文件中每个学生的总成绩,并将原有数据和计算出的总分数存放在磁盘文件“stud”中。
#include "stdio.h"
main()
{
FILE *fp1,*fp2;
float x,y,z;
fp1=fopen("cj.dat","r");
fp2=fopen("stud","w");
while(!feof(fp1))
{
fscanf (fp1,"%f,%f,%f",&x,&y,&z);
printf("%f,%f,%f,%f\n",x,y,z,x y z);
fprintf(fp2,"%f,%f,%f,%f\n",x,y,z,x y z);
}
fclose(fp1);
fclose(fp2);
}
【作业】
1. 有 5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。
2. 将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu_sort”中。