c语言程序设计课件:第十三章文件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《c语言程序设计课件:第十三章文件.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课件 第十三 文件
- 资源描述:
-
1、第十三章第十三章 文件文件3.1 3.1 文件概述文件概述 文件概念文件概念 所谓文件就是:存储在外部介质上所谓文件就是:存储在外部介质上 的信息集合。的信息集合。 根据存储的介质不同可分为:根据存储的介质不同可分为: 磁盘文件磁盘文件、磁带文件磁带文件等。等。 根据内容的不同可分为:根据内容的不同可分为: 程序文件程序文件、数据数据文件文件等。等。 使用文件输入输出的必要性使用文件输入输出的必要性 这里主要讨论数据文件的输入输出,即这里主要讨论数据文件的输入输出,即如何将文件中的数据如何将文件中的数据“输入输入”到程序的数据到程序的数据结构中,如何将程序的数据结构中的数据结构中,如何将程序的
2、数据结构中的数据“输出输出”到文件中。到文件中。 以往的输入输出方法:以往的输入输出方法: 键盘输入键盘输入 ,屏幕输出。,屏幕输出。 这种方法不适用于数据量大的情况。这种方法不适用于数据量大的情况。 举例说明:举例说明:main() int i, a1000; for(i=0;i1000;i+) scanf(“%d”,a+i); for(i=0;i1000;i+) printf(“%5d”,ai); 缺缺 点:点:可能可能出现重出现重复输入。复输入。输出的数据输出的数据不能保存,不不能保存,不能进一步使能进一步使 用。用。采用文件输入输出可以克服这些缺点。采用文件输入输出可以克服这些缺点。m
3、ain() int i, a1000; for(i=0;i1000;i+) scanf(“%d”,a+i); for(i=0;i1000;i+) printf(“%5d”,ai);文件文件文件文件 C C文件分类文件分类 按在磁盘上存储的形式不同,可分为:按在磁盘上存储的形式不同,可分为: 文本文件:文本文件: 以以ASCIIASCII字符存放字符存放可见、可编辑、占可见、可编辑、占空间大。空间大。 二进制文件:二进制文件:以二进制形式存放以二进制形式存放不可见、不可编辑、不可见、不可编辑、占空间小。占空间小。 使用时可根据需要选择。使用时可根据需要选择。13.2 13.2 文件类型指针文件类
4、型指针 每个被使用的文件都在内存中开辟一每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息(如文件个区,用来存放文件的有关信息(如文件名、文件状态及文件当前位置等)。这些名、文件状态及文件当前位置等)。这些信息保存在一个信息保存在一个FILEFILE类型的结构体变量中类型的结构体变量中。 若若 FILE FILE * *fpfp; ; 则则fpfp就称为指向文件就称为指向文件类型的指针变量。访问文件通过文件指针类型的指针变量。访问文件通过文件指针进行。进行。 FILEFILE结构体类型是由系统定义的。结构体类型是由系统定义的。具体定义如下:具体定义如下: typedef struct
5、 short level; 缓冲区缓冲区“满满”或或“空空”的的程度程度 unsigned flags; 文件状态标志文件状态标志 char fd; 文件描述符文件描述符 unsigned char hold; 如无缓冲区不读取字符如无缓冲区不读取字符 short bsize; 缓冲区的大小缓冲区的大小 unsigned char *buffer; 缓冲区的位置缓冲区的位置 unsigned char *curp; 当前读写指针当前读写指针 unsigned istemp; 临时文件,指示器临时文件,指示器 short token; 用于有效性检验用于有效性检验 FILE;13.3 13.3
6、文件的打开与关闭文件的打开与关闭 对文件的读写之前应对文件的读写之前应“打开打开”该文件。该文件。 使用结束后使用结束后“关闭关闭”此文件。此文件。 文件的打开文件的打开(fopen fopen 函数函数) 用用fopenfopen函数实现对文件的打开。函数实现对文件的打开。 fopenfopen函数调用的一般形式:函数调用的一般形式: FILE FILE * *fpfp; ; fp=fopen fp=fopen( (文件名,读写方式文件名,读写方式) ); 例如:例如: fp=fopenfp=fopen(“a1”, ”r”);(“a1”, ”r”); 以只读方式打开文件以只读方式打开文件a1
7、a1。fopenfopen函数返回指向函数返回指向a1a1文件的指针,文件的指针,即即fpfp是指向是指向a1a1文件的指针变量,往后文件的指针变量,往后就可以通过就可以通过fpfp访问访问a1a1文件。文件。文件读写方式:文件读写方式: “r” 按按只读只读方式打开一个方式打开一个文本文本文件文件 “w” 按按只写只写方式打开一个方式打开一个文本文本文件文件 “a” 按按追加追加方式打开一个方式打开一个文本文本文件文件 “rb” 按按只读只读方式打开一个方式打开一个二进制二进制文文件件 “wb” 按按只写只写方式打开一个方式打开一个二进制二进制文文件件 “ab” 按按追加追加方式打开一个方式
8、打开一个二进制二进制文文件件 “r+” 按按读写读写方式打开一个方式打开一个文本文本文件文件“w+” 按按读写读写方式建立一个新的方式建立一个新的文本文本文件文件“a+” 按按读写读写方式打开一个方式打开一个文本文本文件文件“rb+” 按按读写读写方式打开一个方式打开一个二进制二进制文件文件“wb+” 按按读写读写方式建立一个新的方式建立一个新的二进制二进制文文 “ab+” 按按读写读写方式打开一个方式打开一个二进制二进制文件文件 说明:说明: (1 1)不能用)不能用”r”r”方式打开一个不存在方式打开一个不存在的文的文 件,件,”r”r”方式只读不能写。方式只读不能写。 (2 2)“w”
9、w” 方式只写不能读,具有建方式只写不能读,具有建立和立和 覆盖功能。覆盖功能。 (3 3)调用)调用fopenfopen函数时,如果返回函数时,如果返回NULLNULL则则 表示打开不成功。表示打开不成功。文件的关闭文件的关闭(fclose fclose 函数)函数)在使用完一个文件后应用在使用完一个文件后应用fclose fclose 函数关函数关 闭文件,形式为:闭文件,形式为:fclosefclose(文件指针文件指针););如:如: fclose(fpfclose(fp);); 关闭后关闭后fpfp不再指向该文件。不再指向该文件。13.4 13.4 文件的读写文件的读写 文件打开后,
10、就可以对它进行读写了。文件打开后,就可以对它进行读写了。 文本文件的读写文本文件的读写 即如何将以文本方式存放的文件输入到程即如何将以文本方式存放的文件输入到程序的数据结构中。如何将程序的数据结构中序的数据结构中。如何将程序的数据结构中的数据以文本方式输出到文件中。的数据以文本方式输出到文件中。 读对象:读对象:以文本方式存放的文件以文本方式存放的文件 写对象:写对象:以文本方式保存放的文件以文本方式保存放的文件 用于对文本文件读写的函数有用于对文本文件读写的函数有: fscanf fprintf fgetc, getc fputc, putc fgets fputs 重点介绍重点介绍 fsc
11、anf fscanf 和和 fprintffprintf。以例子说明以例子说明fscanffscanf和和fprintffprintf的使用。的使用。 例:已知文本文件例:已知文本文件f1.datf1.dat中存放有中存放有100100个学生的分数,要求读入这些数据,个学生的分数,要求读入这些数据,并按从高到低的顺序排序后输出到另一并按从高到低的顺序排序后输出到另一文件中。文件中。#include “stdio.h”void sort(int *a,int n) main() int i,a100;FILE *fp; fp=fopen(“f1.dat”, “r”); if(fp=NULL) e
12、xit(0);定义一个指向文件的指针变量打开文件,打开文件,使使fp指向文指向文件件f1.datfor(i=0;i100;i+) fscanf(fp,”%d”,a+i); fclose(fp); sort(a,100);fp=fopen(“f2.dat”, “w”);for(i=0;i100;i+) fprintf(fp,”%4d”,ai);fclose(fp);从从fp所指所指的文件中的文件中读数据读数据关闭关闭fp所所指的文件指的文件注意:文本文件的输入格式要与注意:文本文件的输入格式要与 文件中的数据格式匹配。文件中的数据格式匹配。 二进制文件的读写二进制文件的读写 即如何将以二进制方式
展开阅读全文