實(shí)驗(yàn)九 文件
目的與要求】
1.掌握文件和文件指針的概念以及文件的定義方法。
2.了解文件打開和關(guān)閉的概念和方法。
3.掌握有關(guān)文件的函數(shù)。
【上機(jī)內(nèi)容】
【一般示例】
【例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,”%fn”,x);
}
fclose(fp);
}
【例2】設(shè)有一文件cj.dat存放了50個人的成績(英語、計(jì)算機(jī)、數(shù)學(xué)),存放格式為:每人一行,成績間由逗號分隔。計(jì)算三門課平均成績,統(tǒng)計(jì)個人平均成績大于或等于90分的學(xué)生人數(shù)。
#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(“分?jǐn)?shù)高于90的人數(shù)為:%.2d”,num);
fclose(fp);
}
【例3】統(tǒng)計(jì)上題cj.dat文件中每個學(xué)生的總成績,并將原有數(shù)據(jù)和計(jì)算出的總分?jǐn)?shù)存放在磁盤文件“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,%fn”,x,y,z,x+y+z);
fprintf(fp2,”%f,%f,%f,%fn”,x,y,z,x+y+z);
}
fclose(fp1);
fclose(fp2);
}
【作業(yè)】
1. 有 5個學(xué)生,每個學(xué)生有3門課的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)生號,姓名,三門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件“stud”中。
2. 將上題“stud”文件中的學(xué)生數(shù)據(jù),按平均分進(jìn)行排序處理,將已排序的學(xué)生數(shù)據(jù)存入一個新文件“stu_sort”中。