实验九 文件& ?6 b! o7 k% q8 d9 h
【目的与要求】" s0 [( ?3 A/ A# C( a# Z/ u
1.掌握文件和文件指针的概念以及文件的定义方法。
- H, D! S( U7 [# N" ] 2.了解文件打开和关闭的概念和方法。+ k3 k5 X' {7 @ l5 w+ k* P
3.掌握有关文件的函数。% N7 t8 T4 z7 ]) d
【上机内容】
4 g4 _& A5 t: C9 N' I) K' H, ^ 【一般示例】0 c" Z. }# D- K7 z& x7 z
【例1】对data.dat文件写入100条记录。
: S5 [( n M7 M3 c( Y #include7 f9 b/ _2 A& l7 e4 t
main()! V$ ]* p* @5 E" N
{FILE *fp;
# J; G" A, n$ e ^: M1 d int i;- ]+ e4 o$ L: B* x3 X* K
float x;
* W, U+ @$ a5 o; Y/ M2 V fp=fopen("date.dat","w");! j( t I, w; s9 x) j+ U
for(i=1;i=90)
$ Y1 p5 b( P/ g! e4 j" r num=num+1;
% B2 u4 p1 c# ? }
" c$ G( A$ \/ g; u printf("分数高于90的人数为:%.2d",num);
: Q( a o6 ~+ K) {/ l fclose(fp);4 r7 _5 W0 c c& u' f3 C
}
0 j; J/ s8 z! X4 s7 u 【例3】统计上题cj.dat文件中每个学生的总成绩,并将原有数据和计算出的总分数存放在磁盘文件“stud”中。4 ]( c, z0 E+ h, T' w5 `
#include "stdio.h", R: L9 L$ M/ s8 L+ |" v0 N8 a
main()
/ e0 ]; U d! ~ {; p/ V- w9 Q- o# r& ^3 Z
FILE *fp1,*fp2;4 o4 u4 B+ ~' I0 W: J( E
float x,y,z;
( h& r. b! a& e X: R fp1=fopen("cj.dat","r");
+ m8 G1 M% ]2 A. G: m1 D- M fp2=fopen("stud","w");
2 h+ i' c2 L k: r( x# ~ while(!feof(fp1))
4 b+ e! A' o8 j8 y( ]$ U/ H {9 l1 L3 x, X' X& x
fscanf (fp1,"%f,%f,%f",&x,&y,&z);
7 _. k- q" y& n2 e printf("%f,%f,%f,%f\n",x,y,z,x+y+z);
. c0 y; L# L9 O/ b! r# r+ ? fprintf(fp2,"%f,%f,%f,%f\n",x,y,z,x+y+z);
0 {# h# q3 K/ E# n$ U. g }* ?3 u4 p# V+ k8 ` b* P$ D5 l
fclose(fp1);
6 P$ }; V- E$ j& F) i3 x# Y fclose(fp2);- L7 p- @$ ?5 E, p* p2 u
}
9 U @# ~0 D/ |- P) J( i$ |9 h 【作业】 Z* g% q5 G+ _2 ?! ?7 f& H4 z U
1. 有 5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。
9 ?: I% s. H+ q: w 2. 将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu_sort”中。 |