程序设计基础(C语言)上ppt

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

12
2.文件的操作
文件指针
每个正在使用的文件都要说明一个FILE类型的结构变量 该类型就是文件读写所需要分配的内存区域的类型 利用一个结构体类型的变量存放 该结构变量用于存放文件的有关信息 ▪ 文件的名字、文件的性质、文件的当前状态等
FILE 类型由系统定义 它包含的成员即FILE的各个分量由操作系统自动定义 在头文件stdio.h中定义 通过文件结构的数据集合进行输入输出处理
/*文件号*/
int cleft;
/*缓冲区的剩余字符(剩余空间)*/
int mode;
/*文件的操作模式*/
short size; /*缓冲区大小*/
char *buffer; /*文件缓冲区的地址(位置)*/
char *curp;
/*当前地址指针(下一个字符的位置)*/
short token; /*有效性检查控制单元*/
文件结构在打开文件时由操作系统自动建立
程序设计基础(C语言)
13
2.文件的操作
文件指针
在头文件stdio.h中定义的结构FILE
typedef struct
{ short level; /*文件的缓冲区级别(满或空的程度)*/
unsigned flag; /*文件状态标志*/
char fd;
程序设计基础(C语言)
7
1.文件概念
文件的分类
文件的处理方式
数据写入文件或从文件中读出数据的过程
计算机内存
出入文件缓冲区
输出


写文件


输入

输出文件缓冲区
读文件
文件 外存
程序设计基础(C语言)
8
1.文件概念
文件的分类
文件的处理方式 “写文件” 将保存在内存中的数据写入磁盘 ▪ 首先要建立一个“输出文件缓冲区” ▪ 通过该缓冲区可将内存中的数据存入磁盘,以文件的 形式保存 “读文件” 将保存在文件中的数据装入内存 ▪ 首先要建立一个“输入文件缓冲区”,将文件中的数据 装入缓冲区 ▪ 然后再由缓冲区存入程序可以操作的内存数据区
▪ 执行写文件的操作时,先将数据写入内存“缓冲区”, 待内存“缓冲区”写满后再写入文件
▪ 由此可见,内存“缓冲区”的大小,影响着实际操作外 存的次数,内存“缓冲区”越大,操作外存的次数越少, 执行速度就越快、效率就越高
一般来说:文件的“缓冲区”的大小随机器而定
程序设计基础(C语言)
11
2.文件的操作
为什么要使用文件
文件的改动不能引起程序的改动,即程序与数据分离 不同的程序可以访问同一数据文件中的数据,即数据共享 能够长期保存程序运行的中间数据或结果数据
程序设计基础(C语言)
3
1.文件概念
C语言实现文件操作
通过操作系统完成对文件的输入输出操作 通过由C语言的编译系统提供的一套用于文件操作的库
例如:123.45存放字二进制文件中将会占 用4个字节(浮点数)
程序设计基础(C语言)
6
1.文件概念
文件的分类
数据的组织形式 区别 ASCII码文件较为直观、可读性好 ▪ 方便人们的阅读和理解 ▪ 可以直接在Windows下的记事本等工具直接观察 ▪ 占用存储空间较多而且在数据输入输出时必须进行 二进制代码和ASCII码之间的转换 二进制文件存储空间的利用效率高 ▪ 输入输出时不需要进行转换,因而速度较快,可以 节省磁盘空间和转换时间 ▪ 二进制文件不能直接识别内存中的表示形式,不方 便人们的阅读和理解,可读性差
▪ 对文本文件和二进制文件均统一采用缓冲文件系统进 行处理
程序设计基础(C语言)
10
1.文件概念
文件的分类
文件的处理方式
缓冲文件的特点
缓冲区是一个连接计算机内存数据与外存文件的桥梁
在内存开辟一个“缓冲区”,为程序中的每一个文件使用
▪ 执行读文件的操作时,从磁盘文件将数据先读如内存 “缓冲区”,装满后再从内存“缓冲区”依此读入进接收 的变量
函数,也称为“标准输入/输出库”
文件的特点
文件是一个有序的数据序列 保存的所有数据有着严格的排列次序(类似于数组) 要访问文件中的数据,必须按照它们的排列顺序, 依次进行访问
程序设计基础(C语言)
4
1.文件概念
文件的分类
数据的组织形式 ASCII码文件 ASCII码文件是将要存储的数据采用ASCII码的形式进行存 储 ▪ 数据按顺序组成一个一个的字符序列 ▪ 每一个字符用一个ASCII码来表示,占用1个字节 ▪ ASCII码形式的文件在文本编辑器下可以直接阅读 保存在内存中的所有数据在存入文件的时候都要先转换为 等价的字符形式 当要从文件中读取数据时,在将字符串转换为浮点数 例如:123.45(浮点数)
▪ 将123.45转换为字符串“123.45” 再存放
程序设计基础(C语言)
5
1.文件概念
文件的分类
数据的组织形式 二进制文件
将数据按其在内存中的存储方式(二进制 方式)原样输出到文件中存放的
▪ 内存中的数据存入磁盘的时候不需要进 行数据转换
▪ 磁盘上保存的数据采用C语言规定的与 内存数据一致的表示形式进行存储
C语言中文件的操作主要是由C语言库函数实现
了解和掌握C语言提供的与文件有关的操作和规定 文件的定义 文件的状态 访问文件的基本操作
文件操作的函数属于C语言标准输入输出库中的函数 应在程序函数的前面使用预处理命令"#include“ #include <stdio.h>
程序设计基础(C语言)
程序设计基础(C语言)
9
1.文件概念
文件的分类
文件的处理方式
C语言系统对"缓冲区"的处理方式不同产生了两种不同的文件 处理方式
缓冲文件系统
▪ 对每个正在使用的文件,系统自动地在内存中为其开 辟一个缓冲区
非缓冲文件系统
▪ 指系统不会自动开辟缓冲区,而要由程序自行设置文 件的缓冲区
提示
在ANSI C83标准中取消了非缓冲文件系统
程序设计基础(C语言)上
东北大学高级语言程序设计课程组
程序设计基础(C语言)
文件
1.文件概念
什么是文Hale Waihona Puke Baidu?
文件是存储在外部介质上(介质:磁盘和磁带等外存储器)的数据或 信息的集合
例如
程序文件中保存着源程序 数据文件中保存着数据 声音文件中保存着声音数据 磁盘上的每个文件都有唯一的名字,进行标识,依据文件名找到 相应的文件
相关文档
最新文档