《C程序设计》课件第10章.ppt
10.5程序设计举例例10.6若文件number.dat中存放了一组整数,试编程统计并输出文件中正整数、零和负整数的个数。#includestdio.hvoidmain(){FILE*fp;intp=0,n=0,z=0,temp;fp=fopen(“number.dat”,“r”);/*以只读方式打开文本文件*/if(fp==NULL)printf(filenotfound!\n);else{while(!feof(fp)){fscanf(fp,%d,temp);if(temp0)p++;/*统计正整数*/elseif(temp0)n++;/*统计负整数*/elsez++;/*统计零的个数*/}fclose(fp);printf(“positive:%3d,negtive:%3d,zero:%3d\n,p,n,z);}}例10.7将C语言源程序文件exam.c中用斜杠与星号括起来的非嵌套注释删除,然后存入文件exam.out中。#includestdio.hvoiddelcomm(FILE*fp1,FILE*fp2){intc,i=0;while((c=fgetc(fp1))!=EOF)if(c==′\n′)fprintf(fp2,\n);elseswitch(i){case(0):if(c==′/′)i=1;elsefprintf(fp2,%c,c);break;case(1):if(c==′*′)i=2;else{fprintf(fp2,%c,c);i=0;}break;case(2):if(c==′*′)i=3;break;case(3):i=(c==′/′)?0:2;break;}}voidmain(){FILE*fp1,*fp2;fp1=fopen(“exam.c”,“r”);/*以只读方式打开文本文件*/fp2=fopen(“exam.out”,“w”);/*以只写方式打开文本文件*/delcomm(fp1,fp2);fcloseall();}习题1.什么是文件型指针?通过文件指针访问文件有什么好处?2.在对文件进行读/写操作后,为什么必须将其关闭?3.从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到磁盘文件“test.dat”中保存。输入的字符串以“!”结束。4.将第3题所建文件的内容输出到显示器,并统计文件中字符的个数。5.从键盘输入4名学生的姓名、学号、年龄、住址,并存入磁盘文件“stufiel.dat”中。6.从键盘读入10个整数,以二进制方式写到名为“data.text”的新文件中。7.有两个磁盘文件“A.text”和“B.text”,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),并输出到新文件“C.text”中。8.有5个学生,每个学生有3门课的成绩,从键盘输入相关数据(包括学号、姓名、3门课的成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stu.dat”中。注意,EOF不是可输出字符,因此在屏幕上显示不出来。由于字符的ASCII码不可能出现-1,因此EOF定义为-1是合