C语言程序设计第四版谭浩强课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章 文件
PPT学习交流
1
本章内容
10.1 文件的基本知识 10.2 打开与关闭文件 10.3 顺序读写数据文件 10.4 随机读写数据文件 10.5 文件读写的出错检测
PPT学习交流
2
文件的基本知识——输入输出
之前各章中处理的数据 ➢输入:键盘->内存 ➢输出:内存->显示器 实际上也可能是 ➢输入:外部设备->内存(读文件) ➢输出:内存->外部设备(写文件) 操作系统把各种设备都统一作为文件处理
PPT学习交流
3
文件的基本知识——文件分类
➢文件:存放在存储介质(磁盘、光盘、半 导体存储器)上的相关信息集合 ➢程序设计中主要用到两种文件:
程序文件 数据文件 ➢本章讨论的是数据文件
PPT学习交流
4
文件的基本知识——文件标识
•文件有唯一的文件标识,以便识别和引用 •文件标识包括三部分:
文件路径:文件保存的位置 文件名主干:命名应体现文件的内容 文件后缀:体现文件的格式,参见“常用
若文件不存在: "读"和"追加":出错(P.336例,排错) "重写":建立新文件
PPT学习交流
16
文件的关闭
功能:撤销文件信息区和文件缓冲区 函数:fclose(文件指针); 例: fclose (fp);
读写文件后不关闭,可能会丢失数据。
PPT学习交流
17
文件的读写方式
顺序读写:读写顺序与数据的物理顺序 一致(P.338) 随机读写:可以对文件中指定位置的数 据进行读写(P.349)
文件扩展名”
PPT学习交流
5
文件的基本知识——流式文件
C语言把文件看作是字符(或字 节)的序列。
文件以“流”的形式在程序与操作 系统间流动。
PPT学习交流
6
文件的基本知识——数据的形式
根据数据的组织形式,数据文件可分为 •ASCII文件:数据逐个字符的ASCII码输 出到外存,也称文本文件 •二进制文件:内存中二进制形式的数据 直接输出到外存
读/写 的字 节数
读/写 的数 据项 数
文 件 指 针
PPT学习交流
24
顺序文件的读写——二进制读写
例10.4 从键盘输入10个学生的数据(4个数
据项),存放在结构体数组中,再将数 据写入文件(P.346-347)
读上面写好的文件(P.347-348) 从另一个已有的文件里读数据(P.349)
PPT学习交流
磁盘
输入文件缓冲区
PPT学习交流
9
文件的基本知识——文件缓冲区
➢从外存向内存读入数据
程序数据区
输出文件缓冲区
磁盘
输入文件缓冲区 充满缓冲区
PPT学习交流
10
文件的基本知识——文件指针
•被使用的文件在内存中开辟一个相应的 文件信息区,存放文件的信息(如文件名、 状态及当前位置等)
•这些信息保存在一个结构体变量中。该 结构体类型由系统声明,名为FILE
文件
PPT学习交流
21
顺序文件的读写——读写字符串
例10.3 从键盘输入3个字符串,排序,把排
序后的字符串写入文件(P.342-343) 读上面写好的文件(P.344)
PPT学习交流
22
顺序文件的读写——格式化读写
fprintf(文件指针,格式字符串,输出表列); fscanf (文件指针,格式字符串,输入表列);
25
此课件下载可自行编辑修改,供参考! 感谢您的支持,我们努力做得更好!
PPT学习交流
26
PPT学习交流
14
文件的打开
打开文件时,通常指定一个指针变量 指向该文件,通过该指针变量对文件进 行读写。 例:FILE *fp;
fp=fopen("a1.dat","r"); 三个要点:文件名;读写方式;指针
PPT学习交流
15
文件的打开——打开文件的方式
P.336-337表10.1 r:读 w:写(重写,覆盖原数据) a:写(追加) b:二进制文件
•声明FILE结构体类型的信息包含在头文 件“stdio.h”中
•一般设置一个指向FILE类型变量的指针 变量,通过它引用FILE类型变量
PPT学习交流
11
文件的基本知识——文件指针
FILE *fp1,*fp2,*fp3;
fp1
fp2
fp3
文件f1的 文件信息区
文件f2的 文件信息区
文件f3的 文件信息区
例:
fprintf (fp,"%d,%6.2f",i,f);
fscanf (fp,"%d,%f",&i,&f);
——很少用
PPT学习交流
23
顺序文件的读写——二进制读写
fread(buffer,size,count,fp); fwrite(buffer,size,count,fp);
读/写 数据 的首 地址
PPT学习交流
12
文件的基本知识——文件的操作 •写文件:打开-写-关闭 •读文件:打开-读-关闭
PPT学习交流
13
文件的打开
功能:为文件建立相应的信息区(存放 文件信息)和文件缓冲区(暂时存放输入 输出的数据) 函数: fopen(文件名,使用文件方式); 例: fopen("a1.dat","r");
PPT学习交流
18
顺序文件的读写——读写字符
函数形式
功能
返回值
从fp指向的文 成功:返回所读字符; fgetc(fp) 件读入一个字 失败:返回EOF
符
fputc(ch,fp) 把字符ch写到 成功:返回输出的字
fp所指向的文 符;
件
失败:返回EOF
PPT学习交流
19
Байду номын сангаас 顺序文件的读写——读写字符
例10.1 连续读入一串字符并写入文件 例10.2 将一个文件内容复制到另一文件 考虑:如何实现文件的合并?
PPT学习交流
20
顺序文件的读写——读写字符串
函数形式
功能
返回值
从fp指向的文件,成 功 : 返 回 地
fgets(str,n,fp)
读入长度为(n-1) 址str; 的字符串,存放 失 败 :
返
回
到字符数组str NULL
str所指向的字符 成功:返回0;
fputs(str,fp)
串写到文件指针 失败:返回非0 变量fp所指向的 值
PPT学习交流
7
文件的基本知识——数据的形式
•字符:一律以ASCII形式存储 •数值:既可用ASCII形式存储,也可以 用二进制形式存储。例:(10000)10
ASCII形式
1
0
0
0
0
二进制形式
10000 PPT学习交流
8
文件的基本知识——文件缓冲区
➢从内存向外存输出数据
程序数据区
输出文件缓冲区 装满缓冲区
PPT学习交流
1
本章内容
10.1 文件的基本知识 10.2 打开与关闭文件 10.3 顺序读写数据文件 10.4 随机读写数据文件 10.5 文件读写的出错检测
PPT学习交流
2
文件的基本知识——输入输出
之前各章中处理的数据 ➢输入:键盘->内存 ➢输出:内存->显示器 实际上也可能是 ➢输入:外部设备->内存(读文件) ➢输出:内存->外部设备(写文件) 操作系统把各种设备都统一作为文件处理
PPT学习交流
3
文件的基本知识——文件分类
➢文件:存放在存储介质(磁盘、光盘、半 导体存储器)上的相关信息集合 ➢程序设计中主要用到两种文件:
程序文件 数据文件 ➢本章讨论的是数据文件
PPT学习交流
4
文件的基本知识——文件标识
•文件有唯一的文件标识,以便识别和引用 •文件标识包括三部分:
文件路径:文件保存的位置 文件名主干:命名应体现文件的内容 文件后缀:体现文件的格式,参见“常用
若文件不存在: "读"和"追加":出错(P.336例,排错) "重写":建立新文件
PPT学习交流
16
文件的关闭
功能:撤销文件信息区和文件缓冲区 函数:fclose(文件指针); 例: fclose (fp);
读写文件后不关闭,可能会丢失数据。
PPT学习交流
17
文件的读写方式
顺序读写:读写顺序与数据的物理顺序 一致(P.338) 随机读写:可以对文件中指定位置的数 据进行读写(P.349)
文件扩展名”
PPT学习交流
5
文件的基本知识——流式文件
C语言把文件看作是字符(或字 节)的序列。
文件以“流”的形式在程序与操作 系统间流动。
PPT学习交流
6
文件的基本知识——数据的形式
根据数据的组织形式,数据文件可分为 •ASCII文件:数据逐个字符的ASCII码输 出到外存,也称文本文件 •二进制文件:内存中二进制形式的数据 直接输出到外存
读/写 的字 节数
读/写 的数 据项 数
文 件 指 针
PPT学习交流
24
顺序文件的读写——二进制读写
例10.4 从键盘输入10个学生的数据(4个数
据项),存放在结构体数组中,再将数 据写入文件(P.346-347)
读上面写好的文件(P.347-348) 从另一个已有的文件里读数据(P.349)
PPT学习交流
磁盘
输入文件缓冲区
PPT学习交流
9
文件的基本知识——文件缓冲区
➢从外存向内存读入数据
程序数据区
输出文件缓冲区
磁盘
输入文件缓冲区 充满缓冲区
PPT学习交流
10
文件的基本知识——文件指针
•被使用的文件在内存中开辟一个相应的 文件信息区,存放文件的信息(如文件名、 状态及当前位置等)
•这些信息保存在一个结构体变量中。该 结构体类型由系统声明,名为FILE
文件
PPT学习交流
21
顺序文件的读写——读写字符串
例10.3 从键盘输入3个字符串,排序,把排
序后的字符串写入文件(P.342-343) 读上面写好的文件(P.344)
PPT学习交流
22
顺序文件的读写——格式化读写
fprintf(文件指针,格式字符串,输出表列); fscanf (文件指针,格式字符串,输入表列);
25
此课件下载可自行编辑修改,供参考! 感谢您的支持,我们努力做得更好!
PPT学习交流
26
PPT学习交流
14
文件的打开
打开文件时,通常指定一个指针变量 指向该文件,通过该指针变量对文件进 行读写。 例:FILE *fp;
fp=fopen("a1.dat","r"); 三个要点:文件名;读写方式;指针
PPT学习交流
15
文件的打开——打开文件的方式
P.336-337表10.1 r:读 w:写(重写,覆盖原数据) a:写(追加) b:二进制文件
•声明FILE结构体类型的信息包含在头文 件“stdio.h”中
•一般设置一个指向FILE类型变量的指针 变量,通过它引用FILE类型变量
PPT学习交流
11
文件的基本知识——文件指针
FILE *fp1,*fp2,*fp3;
fp1
fp2
fp3
文件f1的 文件信息区
文件f2的 文件信息区
文件f3的 文件信息区
例:
fprintf (fp,"%d,%6.2f",i,f);
fscanf (fp,"%d,%f",&i,&f);
——很少用
PPT学习交流
23
顺序文件的读写——二进制读写
fread(buffer,size,count,fp); fwrite(buffer,size,count,fp);
读/写 数据 的首 地址
PPT学习交流
12
文件的基本知识——文件的操作 •写文件:打开-写-关闭 •读文件:打开-读-关闭
PPT学习交流
13
文件的打开
功能:为文件建立相应的信息区(存放 文件信息)和文件缓冲区(暂时存放输入 输出的数据) 函数: fopen(文件名,使用文件方式); 例: fopen("a1.dat","r");
PPT学习交流
18
顺序文件的读写——读写字符
函数形式
功能
返回值
从fp指向的文 成功:返回所读字符; fgetc(fp) 件读入一个字 失败:返回EOF
符
fputc(ch,fp) 把字符ch写到 成功:返回输出的字
fp所指向的文 符;
件
失败:返回EOF
PPT学习交流
19
Байду номын сангаас 顺序文件的读写——读写字符
例10.1 连续读入一串字符并写入文件 例10.2 将一个文件内容复制到另一文件 考虑:如何实现文件的合并?
PPT学习交流
20
顺序文件的读写——读写字符串
函数形式
功能
返回值
从fp指向的文件,成 功 : 返 回 地
fgets(str,n,fp)
读入长度为(n-1) 址str; 的字符串,存放 失 败 :
返
回
到字符数组str NULL
str所指向的字符 成功:返回0;
fputs(str,fp)
串写到文件指针 失败:返回非0 变量fp所指向的 值
PPT学习交流
7
文件的基本知识——数据的形式
•字符:一律以ASCII形式存储 •数值:既可用ASCII形式存储,也可以 用二进制形式存储。例:(10000)10
ASCII形式
1
0
0
0
0
二进制形式
10000 PPT学习交流
8
文件的基本知识——文件缓冲区
➢从内存向外存输出数据
程序数据区
输出文件缓冲区 装满缓冲区