郧阳师范高等专科学校:《C语言程序设计教程》第十三章 文件

C语言程序设计 教程 郧阳师范高等专科学校 计算机科学系 方斌制作
C语言程序设计 教程 郧阳师范高等专科学校 计算机科学系 方 斌 制作

第13章文件 13.1概述 13.5文件的定位 132文件类型指针136出错的检测 13文件的打开与关闭137文件输入输出小结 134文件的读写 本章要求与作业
第13章 文 件 13.1 概述 13.5 文件的定位 13.2 文件类型指针 13.6 出错的检测 13.3 文件的打开与关闭 13.7 文件输入输出小结 13.4 文件的读写 本章要求与作业

13.1概述 一、文件的概念 1、“文件(fe)":是记录在介质上的数据的集合,以文件名作为访问文 件的标识。 介质:一般是磁盘、磁带、光盘等。 2、内存文件:在内存中开辟一段空间,以文件的方式存放数据。如、 DOS虚拟磁盘驱动程序 RAMDRIVE SYS建立的虚拟磁盘上存放的文件。 Windows9X恢复盘也建立虛拟磁盘,用于临时存放系统命令文件。 3、操作系统把与主机关联的终端也当作文件处理,如 键盘:输入文件 显示器:输出文件 打印机:输出文件
13.1 概 述 一、文件的概念 1、“文件(file)”:是记录在介质上的数据的集合,以文件名作为访问文 件的标识。 介质:一般是磁盘、磁带、光盘等。 2、内存文件:在内存中开辟一段空间,以文件的方式存放数据。如、 DOS虚拟磁盘驱动程序RAMDRIVE.SYS建立的虚拟磁盘上存放的文件。 Windows9.X恢复盘也建立虚拟磁盘,用于临时存放系统命令文件。 3、操作系统把与主机关联的终端也当作文件处理,如: 键盘: 输入文件 显示器:输出文件 打印机:输出文件

4、C语言把文件看作一个字节序列,即由一连串的字节组成,称为“流 ( strean)”,以字节为单位访问,没有记录的界限(实际存在界限,例 如,在FAT16文件系统中,文件的最大长度是2GB)。 5、按文件所依附的介质来分:有磁盘文件、磁带文件、内存文件、设备 文件等。 6、按文件的内容区分:有源程序文件、目标文件、数据文件等。 7、按文件中的数据组织形式来分:数据文件可分为ASCI码文件和二进 制文件。ASCI码文件,又称为“文本文件”(text),其每一个字节存放 一个ASCI码。 二进制文件,把内存中的数据按其在内存中的存储形式存放在磁盘上
4、C语言把文件看作一个字节序列,即由一连串的字节组成,称为“流 (stream)” ,以字节为单位访问,没有记录的界限(实际存在界限,例 如,在FAT16文件系统中,文件的最大长度是2GB)。 5、按文件所依附的介质来分:有磁盘文件、磁带文件、内存文件、设备 文件等。 6、按文件的内容区分:有源程序文件、目标文件、数据文件等。 7、按文件中的数据组织形式来分:数据文件可分为ASCII码文件和二进 制文件。ASCII码文件,又称为“文本文件”(text),其每一个字节存放 一个ASCII码。 二进制文件,把内存中的数据按其在内存中的存储形式存放在磁盘上

二、文件分类 可以从不同的角度对文件进行分类: 1)根据文件的内容,可分为程序文件和数据文件,程序文件又可分 为源文件、目标文件和可执行文件。 (2)根据文件的组织形式,可分为顺序存取文件和随机存取文件。 (3)根据文件的存储形式,可分为ASCI1文件和二进制文件。 ASCI码文件的每1个字节存储1个字符,因而便于对字符进行逐个处 理。但一般占用存储空间较多,而且要花费转换时间(二进制与 ASCII 码之间的转换)。 二进制文件是把内存中的数据,原样输出到磁盘文件中。可以节省存储 空间和转换时间,但1个字节并不对应1个字符,不能直接输出字符形 式
二、文件分类 可以从不同的角度对文件进行分类: (1)根据文件的内容,可分为程序文件和数据文件,程序文件又可分 为源文件、目标文件和可执行文件。 (2)根据文件的组织形式,可分为顺序存取文件和随机存取文件。 (3)根据文件的存储形式,可分为ASCII码文件和二进制文件。 ASCII码文件的每1个字节存储1个字符,因而便于对字符进行逐个处 理。但一般占用存储空间较多,而且要花费转换时间(二进制与ASCII 码之间的转换)。 二进制文件是把内存中的数据,原样输出到磁盘文件中。可以节省存储 空间和转换时间,但1个字节并不对应1个字符,不能直接输出字符形 式

例、十进制整数10000, 在内存中占两字节,其存放形式是:0010,0111,0001,0000 在二进制文件中也按这中方式存放。 在ASCI文件中,存放为31H、30H、30H、30H、30H,占五个字节, 它们分别是1、0、0、0、0、0字母的ASCI码。 4△ 内存中的存放形式 00100111100010000 十进制整数 10000 二进制文件中的存放形式 0010011100010000 ASCI码文件中的存放形式 00110001100110000001100000011000000110000 0x31 0x30 0x30 0x300x30
例、十进制整数10000, 在内存中占两字节,其存放形式是:0010,0111,0001,0000。 在二进制文件中也按这中方式存放。 在ASCII文件中,存放为31H、30H、30H、30H、30H,占五个字节, 它们分别是1、0、0、0、0、0字母的ASCII码

8、按照操作系统对磁盘文件的读写方式,文件可以分为“缓冲文件系 统”和“非缓冲文件系统”。 缓冲文件系统:操作系统在內存中为每一个正在使用的文件开辟一个读 写缓冲区。 内存 输出文件缓冲区」输出磁盘 程序数据 输出 输入输文件缓冲区输入 非缓冲文件系统:操作系统不开辟读写缓冲区
8、按照操作系统对磁盘文件的读写方式,文件可以分为“缓冲文件系 统”和“非缓冲文件系统”。 缓冲文件系统:操作系统在内存中为每一个正在使用的文件开辟一个读 写缓冲区。 非缓冲文件系统:操作系统不开辟读写缓冲区

ANSI C的缓冲文件系统 所谓缓冲文件系统是指,系统自动地在内存区为每个正 在使用的文件开辟一个缓冲区。 从内存向磁盘输出数据时,必须首先输出到缓冲区中。 待缓冲区装满后,再一起输出到磁盘文件中。 从磁盘文件向内存读入数据时,则正好相反:首先将一 批数据读入到缓冲区中,再从缓冲区中将数据逐个送到 程序数据区
ANSI C的缓冲文件系统 所谓缓冲文件系统是指,系统自动地在内存区为每个正 在使用的文件开辟一个缓冲区。 从内存向磁盘输出数据时,必须首先输出到缓冲区中。 待缓冲区装满后,再一起输出到磁盘文件中。 从磁盘文件向内存读入数据时,则正好相反:首先将一 批数据读入到缓冲区中,再从缓冲区中将数据逐个送到 程序数据区

13.2文件类型指针 口要调用一个文件,需要有以下的信息: 文件当前的读写位置 ◎与该文件对应的内存缓冲区的地址 缓冲区中未被处理的字符串 9文件操作方式等 缓冲文件系统会为每一个文件系统开辟一个“文件信息区”,在 stdio. h 中,它被定义为FILE类型数据,用于存放文件的有关信息(如文件名、 文件位置等) 注意:结构类型名“FILE"必须大写
要调用一个文件,需要有以下的信息: 13.2 文件类型指针 文件当前的读写位置 与该文件对应的内存缓冲区的地址 缓冲区中未被处理的字符串 文件操作方式等 缓冲文件系统会为每一个文件系统开辟一个“文件信息区”,在stdio.h 中,它被定义为FILE类型数据,用于存放文件的有关信息(如文件名、 文件位置等) 注意:结构类型名“FILE”必须大写

typedef struct { int fd r /*文件号* int cleft;/*缓冲区中剩下的字节数*/ int mode;/*文件操作模式*/ char* nextc;/*下一个字节的位置* char*buf;/*文件缓冲区位置*/ SFILE 其中:每个成员就是用来存放有关文件的各种信息的数据项 定义文件指针变量的一般形式为: FILE*文件结构指针变量名 例如、FILE*fp; 注意:只有通过文件指针,才能调用相应的文件
typedef struct { int _fd; /* 文件号 */ int _cleft; /* 缓冲区中剩下的字节数 */ int _mode; /* 文件操作模式 */ char * _nextc; /* 下一个字节的位置 */ char * _buff; /*文件缓冲区位置 */ }FILE; 其中:每个成员就是用来存放有关文件的各种信息的数据项。 定义文件指针变量的一般形式为: FILE *文件结构指针变量名 例如、FILE *fp; 注意:只有通过文件指针,才能调用相应的文件
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 郧阳师范高等专科学校:《C语言程序设计教程》第十二章 位运算.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第十一章 结构体与共同体.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第十章 指针.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第九章 编译预处理.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第八章 第8章.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第七章 数组.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第六章 循环结构程序设计.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第五章 选择结构程序设计.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第四章 顺序结构程序设计.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第三章 数据类型、运算符与表达式.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第二章 数据类型、运算符与表达式.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第一章 C语言概述.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第九章 文件.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第八章 指针.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第七章 构造数据类型.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第六章 编译预处理.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第五章 函数及变量的存储类别.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第四章 C程序流程设计.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第三章 远算符和表达式.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第二章 基本数据类型及数据的输入输出.ppt
- 《数据结构》课程教学资源:第一章 数据结构基础概论.ppt
- 《数据结构》课程教学资源:第二章 线性表.ppt
- 《数据结构》课程教学资源:第三章 栈和队列.ppt
- 《数据结构》课程教学资源:第四章 串和数组.ppt
- 《数据结构》课程教学资源:第五章 树和二叉树.ppt
- 《数据结构》课程教学资源:第六章 图.ppt
- 《数据结构》课程教学资源:第七章 查找.ppt
- 《数据结构》课程教学资源:第八章 排序.ppt
- 《数据结构》课程教学资源:第九章 文件.ppt
- 北京科技大学职业技术学院:《C语言程序设计教程》课程电子教案(PPT教学课件)第1章 C语言概述.ppt
- 北京科技大学职业技术学院:《C语言程序设计教程》课程电子教案(PPT教学课件)第2章 数据类型、运算符与表达式.ppt
- 北京科技大学职业技术学院:《C语言程序设计教程》课程电子教案(PPT教学课件)第3章 顺序结构程序设计.ppt
- 北京科技大学职业技术学院:《C语言程序设计教程》课程电子教案(PPT教学课件)第4章 选择结构程序设计.ppt
- 北京科技大学职业技术学院:《C语言程序设计教程》课程电子教案(PPT教学课件)第5章 循环结构程序设计.ppt
- 北京科技大学职业技术学院:《C语言程序设计教程》课程电子教案(PPT教学课件)第6章 数组.ppt
- 北京科技大学职业技术学院:《C语言程序设计教程》课程电子教案(PPT教学课件)第7章 函数.ppt
- 北京科技大学职业技术学院:《C语言程序设计教程》课程电子教案(PPT教学课件)第8章 编译预处理.ppt
- 中国水利水电出版社:《C#程序设计》教材PPT课件_第1章 C#程序设计概述.ppt
- 中国水利水电出版社:《C#程序设计》教材配套PPT课件_第2章 数据类型.ppt
- 中国水利水电出版社:《C#程序设计》教材配套PPT课件_第3章 常量与变量.ppt