资源描述:
《C语言上机实验第1章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序设计语言C信息与计算科学教研室GCG@STAFF.SHU.EDU.CN第九章文件§1文件§2文件类型指针§3文件打开关闭§4文件输出入§5文件定位出错检测§1文件概述文件是存储在外部介质上的数据的集合。文件由操作系统来管理。数据文件可以被其他程序共享。1、源程序文件--一般是文本文件;2、数据文件–文本文件或二进制文件。(每字符存为一字节ASC码)(内存形式存储)3、缓冲文件—通过高速缓冲读写文件。§2文件的打开和关闭1.文件类型(FILE)指针类型定义typedeffloatREAL;Floata,b;==>REALa,b;typedefstruct{charname;
2、intpay;}DATA;DATAa[100],*p=a;1.文件类型(FILE)指针文件类型定义typedefstruct{int_fd;/*文件号*/int_cleft;/*缓冲区中剩下的字符*/int_mode;/*文件操作模式*/char*_nextc;/*文件当前位置*/char*_buff;/*文件缓冲区位置*/}FILE;文件指针定义FILE类型的定义在stdio.h头文件FILE*fp1,*fp2;2.文件的打开和关闭文件打开函数fopen()用法:FILE*fopen(char*filename,char*fmode)调用方式:FILE*fp;fp=fope
3、n(“文件名”,“文件操作方式”);文件名可写成:“test.dat”或定义过chars[]=“test.dat”;则写s;或定义过char*pc=“test.dat”;则写pc;或定义过#defineff“test.dat”;则写ff.3.文件打开的方式文件操作方式可写成:“r”--读,为输入打开一个文本文件;“w”--写,为输出打开一个文本文件;“a”--添加,向文本文件尾增补内容。(rb,wb,ab;二进r+,w+,a+;新建rb+,wb+,ab+)文件打开函数fopen()如法1:fp=fopen(“file1.dat”,“w”)法2:if((fp=fopen(“fi
4、le1.dat”,“w”)==NULL){printf(“cannotopenthisfile.”);exit(0);}4.文件的关闭2、文件关闭函数fclose()用法:fclose(文件指针)如:fclose(fp);§3文本文件输入输出1.字符读写函数fgetc()2字符串读写函数fgets()fputs()3格式化读写函数fscanf()fprintf()fgetc()读字符函数从一打开的文件中读一个字符,并返回。调用格式:ch=fgetc(fp);2)fputc(charc,FILE*fp)写字符函数将字符c的内容送到fp指向的文件中去。3)feof(fp)文件
5、结束函数如果文件结束,返回1,否则返回0。1.字符读写函数例1:读一个源程序,在屏幕上显示。#includemain(){FILE*fp;charch;if((fp=fopen(“a:\my.c”,”r”))==NULL){printf(“cannotopenfile.”);exit(0);}ch=fgetc(fp);while(feof(fp)==0){putchar(ch);ch=fgetc(fp);}fclose(fp);}#includemain(){FILE*fp;charch;fp=fopen(“a:\my.dat”,”
6、w”);while((ch=getchar()!=‘’);fputc(ch,fp);fclose(fp);}例2:输入字串数据,写入一个磁盘数据文件c:my.dat。2.字符串读写函数fgets(str,n,fp)从fp指定文件读取n-1个字符送入字符数组str中返回str的首地址如:fgets(c,80,fp);fputs(str,fp)把字符串str输出到fp指向的文件中不输出‘ ‘如:fputs(“ABCDEFG”,fp);3.格式化读写函数在使用fopen()打开文件后,可格式化读写fscanf(FILE*fp,格式说明,输入表列);fprintf(FILE*
7、fp,格式说明,输出表列);格式说明,输入表列用法同scanf(),printf()例3:统计英文信中大写字母个数,句子总数。#includemain(){FILE*fp;charc;intk,m;if((fp=fopen(“letter.txt”,”r”))==NULL){printf(“cannotopenthisfile.”);exit(0);}k=m=0;while(fscanf(fp,”%c”,&c)!=EOF)/*文件结束符*/{if(c<=‘Z’&&c>=‘A’)/*