|
实验九 文件 目的与要求】 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”中。
|