C语言教案:第9章 文件

上传人:油条 文档编号:48812211 上传时间:2018-07-20 格式:PPT 页数:26 大小:169KB
返回 下载 相关 举报
C语言教案:第9章  文件_第1页
第1页 / 共26页
C语言教案:第9章  文件_第2页
第2页 / 共26页
C语言教案:第9章  文件_第3页
第3页 / 共26页
C语言教案:第9章  文件_第4页
第4页 / 共26页
C语言教案:第9章  文件_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《C语言教案:第9章 文件》由会员分享,可在线阅读,更多相关《C语言教案:第9章 文件(26页珍藏版)》请在金锄头文库上搜索。

1、第九章:文 件9.1 文件概述 9.2 文件类型指针9.3 文件的打开与关闭9.4 标准I/O及其重定向9.5 文件的读写Date1 9.1 文件概述 一、文件存储在外部介质上数据的集合使用数据文件的目的:二、文件分类: 1、按文件的逻辑结构记录文件:由具有一定结构的记录组成 (定长和不定长)流式文件:由一个个字符(字节)数据顺序组成3、长期保存数据2、数据共享1、程序与数据分离Date2普通文件:设备文件:存储介质文件(磁盘、磁带等)非存储介质(键盘、显示器、打印机等)2、按存储介质3、按数据的组织形式文本文件:ASCII文件,每个字节存放一个字符的ASCII码二进制文件:数据按其在内存中的

2、存储形式原样存放Date3如:有一个整型数1000000100111000100000011000100110000001100000011000000110000ASCII码形式二进制形式存放文本文件特点: 存储量大、速度慢、便于对字符操作二进制文件特点: 存储量小、速度快、便于存放中间结果Date4三、文件处理无专门的语句,利用库函数对文件进行操作 缓冲文件系统(高级文件系统)非缓冲文件系统(低级文件系统)对文件进行操作的步骤:关闭 处理 打开 Date5 9.2 文件指针一、文件结构体FILEtypedef struct int _fd; /文件号int _cleft; /缓冲区中剩下的

3、字符数int _mode; /文件操作方式char *_next; /文件当前读写位置char *_buff; /文件缓冲区位置 FILE;文件信息用系统定义的名为FILE的结构体描述Date6FILE *变量名;二、文件类型指针(FILE定义在stdio.h中)文件类型指针的用法:1、文件打开时系统自动建立文件结构体,并把指向它的指针返 回,程序通过这个指针获得文件信息,访问文件。2、文件关闭后文件结构体被释放。Date7 9.3 文件的打开和关闭一、打开文件(fopen)FILE *fopen(char *name,char *mode)函数原型:功能:按指定方式打开文件返回值:正常打开

4、指向文件结构体的指针打开失败 为NULL要打开的文件名使用文件方式Date8“r+/rb+” (读写)“a/ab” (追加)“w/wb” (只写)“r/rb” (只读)“w+/wb+” (读写)“a+/ab+” (读写)为输入打开一个文本/二进制文件为输出打开或建立一个文本/二进制文件为读/写打开一个文本/二进制文件为读/写建立一个文本/二进制文件为读/写打开或建立一个文本/二进制文件向文本/二进制文件尾追加数据文件使用方式含 义文件使用方式表:Date9例 FILE *fp;char *filename=“c:fbtest.dat”fp= fopen(filename,”r”); 例 文件打

5、开与测试 FILE *fp;fp=fopen(“aa.c”,“w”);if(fp=NULL) printf(“File open error!n”);exit(0); 例 FILE *fp;fp= fopen (“c:fbtest.dat”,”r”); Date10二、文件关闭(fclose) 作用: 文件指针变量与文件“脱钩”,释放文件结 构体和文件指针。函数原型:功能:关闭fp指向的文件int fclose(FILE *fp)返回值:正常关闭为0;出错时,非0注意: 文件用完一定关闭,否则将出现如下问题 1、数据丢失 2、影响其他文件的打开 Date11#include main() FI

6、LE *fp;char ch,*filename=“out.txt”;if(fp=fopen(filename,“w“)=NULL) printf(“cannot open filen“); exit(0); printf(“Please input string:“);ch=getchar();while(ch!=#) fputc(ch,fp);putchar(ch);ch=getchar(); fclose(fp); 例 1: 从键盘输入字符,逐个 存到磁盘文件中,直到输入 #“为止.Date12#include main() FILE *fp;char ch,*filename=“out

7、.txt”;if(fp=fopen(filename,”r“)=NULL) printf(“cannot open filen“);exit(0);while(ch=fgetc(fp)!=EOF)putchar(ch);fclose(fp); 例2: 读文本文件内容,并显示Date13#include main() FILE *in, *out;char ch,infile10,outfile10;scanf(“%s“,infile);scanf(“%s“,outfile);if (in = fopen(infile, “r“)= NULL) printf(“Cannot open infil

8、e.n“);exit(0); if (out = fopen(outfile, “w“)= NULL) printf(“Cannot open outfile.n“);exit(0); while (!feof(in)fputc(fgetc(in), out);fclose(in); fclose(out); 例3: 读、写文本文件内容Date149.4 标准I/O及其重定向一、系统自动打开和关闭三个标准文件:标准输入-键盘 stdin标准输出-显示器 stdout标准出错输出-显示器 stderr二、重定向:输入、输出重新定向(输入、输出由文件完成)符号: 、 Date15一、读读函数(磁盘

9、盘 缓缓冲区)1、fgetc函数调用形式: fgetc(fp);9.5 文件的读写2、fread函数调用形式: fread(buffer,size,count,fp);缓冲区首地址 数据字节数 数据个数 文件指针(函数用于字符文件)(函数用于二进制文件)Date163、fscanf函数调用形式: fscanf(文件类型指针,格式控制,地址表);4、fgets函数调用形式: fgets(str,fp);(函数用于处理字符串)Date17二、写函数(缓冲区 磁盘) 1、fputc函数调用形式: 调用形式: 调用形式: fputc(c,fp); 功能:将一个字符写到指定文件中。 2、fwrite函数

10、3、fprintf函数fprintf(文件类型指针,格式控制,地址表);fwrite(buffer,size,count,fp);4、fputs函数调用形式: fputs(str,fp); Date18例 从键盘输入4个学生数据,把他们转存到磁盘文件中去#include #define SIZE 2 struct student_type char name10;int num;int age;char addr15; studSIZE; main() int i;for(i=0;i main() char s80,c80;int a,b;FILE *fp;if(fp=fopen(“test“

11、,“w“)=NULL) puts(“cant open file“); exit() ; fscanf(stdin,“%s%d“,s,/*read from keaboard*/fprintf(fp,“%s %d“,s,a);/*write to file*/fclose(fp);if(fp=fopen(“test“,“r“)=NULL) puts(“cant open file“); exit(); fscanf(fp,“%s%d“,c,/*read from file*/fprintf(stdout,“%s %d“,c,b);/*print to screen*/fclose(fp); 例

12、2:Date22#include main() FILE *fp;char string81;if(fp=fopen(“file.txt“,“w“)=NULL) printf(“cannt open file“);exit(0); while(strlen(gets(string)0) fputs(string,fp);fputs(“n“,fp);fclose(fp);if(fp=fopen(“file.txt“,“r“)=NULL) printf(“cannt open file“);exit(0); while(fgets(string,81,fp)!=NULL)fputs(string,stdout);fclose(fp); 例3:Date2310.1、10.4 第十章(文件)作业Date24Date25考前答疑安排答疑地点:综合实验楼217 / 214房间答疑时间:17周: 周二下午14:0016:30周四下午14:0016:3018周:周一 上午8:3011:00 周三 上午8:3011:00Date26

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号