
第 11 章 文件
1 第 11 章 文件

文件文件的定义:存储在外存储器上的数据集合文件的分类(按存储形式分)文本文件:又称为ASCI码文件。每个字符通过相应的编码存储在文件中。例如:整数1234,以文本文件保存,是四个字符(1、2、3、4的ASCI码)直接把内存数据以二进制形式保存。例如:二进制文件:整数1234,以二进制文件保存,是二进制数0x04D2Page2
Page 2 文件 ◼ 文件的定义:存储在外存储器上的数据集合 二进制文件:直接把内存数据以二进制形式保存。例如: 整数1234,以二进制文件保存,是二进制数 0x04D2 文本文件:又称为ASCII码文件。每个字符通过相应的编 码存储在文件中。例如: 整数1234,以文本文 件保存,是四个字符(1、2、3、4的ASCII码) 文件的分类(按存储形式分)

文件文件缓冲区:系统在内存中开辟一块缓冲区以便慢速的外设与其成块地进行数据交换程序控制向磁盘(文件)输出数据:数据缓冲区,装满缓冲区后系统控制磁盘文件。从磁盘(文件)读入数据:久先一次性从磁盘文件将一批数据输入到缓冲区,然后再从缓冲区逐个读入数据到变量。Page3
Page 3 ◼ 文件缓冲区:系统在内存中开辟一块缓冲区以便慢速 ◼ 的外设与其成块地进行数据交换。 向磁盘(文件)输出数据:数据 缓冲区,装满缓冲 区后 系统控制 磁盘文件。 程序控制 文件 从磁盘(文件)读入数据:先一次性从磁盘文件将一批数据 输入到缓冲区,然后再从缓冲区 逐个读入数据到变量

文本文件(流文件,顺序文件)文本文件指以ASCII码方式(也称文本方式)存储的文件更确切地说,英文、数字等字符存储的是ASCI码,汉字存储的是机内码。文本文件中除了存储文件有效字符信息(包括能用ASCII码字符表示的回车、换行等信息)外,不能存储其他任何信息。Page
Page 4 文本文件(流文件,顺序文件) 文本文件指以ASCII码方式(也称文本方式)存储的文件。 更确切地说,英文、数字等字符存储的是ASCII码,汉字 存储的是机内码。 文本文件中除了存储文件有效字符信息(包括能用ASCII 码字符表示的回车、换行等信息)外,不能存储其他任 何信息

二进制文件(随机读写文件,记录文件)二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放,也就是说存放的是数据的原形式。随机读写是指从文件中读写数据时可不考虑数据在文件中的位置,可以在文件的任何位置读写。随机读写在读写数据前,需要将文件位置指针移到读写位置。当文件以读或写方式打开,文件位置指针设置在文件头,若文件以附加方式打开,位置设置在文件末尾。Page5
Page 5 二进制文件(随机读写文件,记录文件) 随机读写是指从文件中读写数据时可不考虑数据在文 件中的位置,可以在文件的任何位置读写。 随机读写在读写数据前,需要将文件位置指针移到读 写位置。当文件以读或写方式打开,文件位置指针设 置在文件头,若文件以附加方式打开,位置设置在文 件末尾。 二进制文件是把内存中的数据按其在内存中的存储 形式原样输出到磁盘上存放,也就是说存放的是数据 的原形式

文件类型指针文件类型指针缓冲文件系统为每个使用的文件在内存中开辟一存储区存放其相关信息,这些信息用一个结构变量保存,该结构类型的名字是FILE。程序通过FILE类型指针建立和文件的联系,进行关于文件的一切操作。定义形式:FILE*指针变量名;用于存放文件的缓冲区首地址,指向一个文件例如:FILE*fp;定义了一个结构体FILE类型的指针变量fp。Page6
Page 6 文件类型指针 文件类型指针 例如:FILE *fp; 定义了一个结构体FILE类型的指针变量fp。 定义形式:FILE * 指针变量名; 用于存放文件的缓冲区首 地址,指向一个文件 缓冲文件系统为每个使用的文件在内存中开辟一存储区存放其相关信 息,这些信息用一个结构变量保存,该结构类型的名字是 FILE。 程 序通过 FILE类型指针建立和文件的联系,进行关于文件的一切操作

文件的打开fopen(函数打开文件的一般形式:FILE*文件指针名:文件指针名=fopen(“文件名”,“文件使用方式”):为了打开一个文件,首先要为该文件定义一个文件类型指针,然后用C语言提供的fopen函数打开文件。fopen函数有两个参数:“文件名”与“文件使用方式”。它们均是字符串。Page
Page 7 文件的打开 fopen( )函数 打开文件的一般形式: FILE *文件指针名; . 文件指针名=fopen(“文件名” , “文件使用方式”); 为了打开一个文件,首先要为该文件定义一个文件类型 指针,然后用C语言提供的fopen函数打开文件。fopen函数 有两个参数:“文件名”与“文件使用方式” 。它们均是字 符串

文件的打开文件使用方式符号意义以只读方式打开一个文本文件,若文件不存r(read)在,则返回空指针以只写方式创建一个文本文件w(write)以追加方式打开或创建一个文本文件,并从a(append)文件末尾写数据t(text)文本文件,可省略不写二进制文件b(banary)+读和写Page8
Page 8 符号 意义 r(read) 以只读方式打开一个文本文件,若文件不存 在,则返回空指针 w(write) 以只写方式创建一个文本文件 a(append) 以追加方式打开或创建一个文本文件,并从 文件末尾写数据 t(text) 文本文件,可省略不写 b(banary) 二进制文件 + 读和写 文件的打开 文件使用方式

文件的打开例如:FILE*fp;fp=fopen("file a", “r");其意义是在当前目录下打开文件filea,文件的使用方式为“读入”,并使p指向该文件。又如:FILE*fpabcfpabc=("c:llabc",“rb")其意义是打开c盘根目录下的文件abc,这是一个二进制文件,只允许按二进制方式进行读操作。两个反斜线“ⅡI”中的第一个表示转义字符,第二个表示根目录。Page
Page 9 文件的打开 例如:FILE *fp; fp=fopen(“file a”, “r”); 其意义是在当前目录下打开文件file a,文件的使用方式 为“读入” ,并使fp指向该文件。 又如:FILE *fpabc fpabc=(“c:\\abc”, “rb”) 其意义是打开c盘根目录下的文件abc,这是一个二进制 文件,只允许按二进制方式进行读操作。两个反斜线“\\” 中的第一个表示转义字符,第二个表示根目录

文件的关闭fclose()函数关闭文件的一般形式:fclose(文件指针);功能:是将由fp指向的缓冲区中的数据存放到外存储器的文件中,然后释放该缓冲区,使文件指针变量不再指向与该文件对应的FILE结构,从而断开与文件的关联返回值:操作正常返回0,否则返回EOF(是在stdio.h文件中定义的符号常量,值为-1)说明:如果不关闭文件,将会丢失数据,并且一个C程序能同时打开的文件数有限,应该养成在使用完文件后关闭文件的习惯Page10
Page 10 文件的关闭 fclose( )函数 说明:如果不关闭文件,将会丢失数据,并且一个C程序能同时打 开的文件数有限,应该养成在使用完文件后关闭文件的习惯 返回值:操作正常返回0,否则返回EOF(是在stdio.h文件中定义的 符号常量,值为-1) 功能:是将由fp指向的缓冲区中的数据存放到外存储器的文件中, 然后释放该缓冲区,使文件指针变量不再指向与该文件对应 的FILE结构,从而断开与文件的关联 关闭文件的一般形式:fclose(文件指针);