- 8
- 0
- 约8.21千字
- 约 69页
- 2021-10-14 发布于广东
- 举报
文件;引子;第十一章 文件;第十一章 文件;11.1 文件概述;11.1 文件概述;系统对文件的处理过程
系统对文件的处理过程就是对文件进行输入/输出操作的过程。;11.1 文件概述;从文件数据的组织形式(存储格式)看
ASCII文件(或称文本文件,即TEXT文件)
文本文件中的数据采用ASCII码格式存储,全部数据转换为ASCII码。每个ASCII字符占1个字节。ASCII文件使用文本编辑器可直接阅读。
二进制文件
对数据在内存中的二进制存储格式不做任何转换,直接存入文件,形成二进制文件。二进制文件在操作系统???不能直接阅读。;11.1 文件概述;比较:
ASCII文件中,每个字符以ASCII码形式存储,方便对字符的逐个处理;在操作系统下或使用文本编辑器时,可以直接阅读、修改,方便与其它系统进行数据交换。
缺点是占用磁盘存储空间多,并且系统要付出将内存中的二进制形式转为ASCII码的时间开销。
用二进制形式输出,可以节省磁盘空间和转换时间,但输出的数据因为是内存中的格式,在操作系统下和一般的编辑器中不能直接识别。;11.1 文件概述;11.1 文件概述;11.1 文件概述;11.1 文件概述;第十一章 文件;文件类型 FILE
在缓冲文件系统中,用一个 FILE 类型的结构变量来描述一个文件,该结构变量用于存放文件的有关信息,如文件名、文件状态等。
在C语言中,无论是一般磁盘文件还是设备文件,都要通过文件结构的数据集合进行输入输出处理。
文件结构不需要用户自己定义,是由系统事先定义好的,包含在头文件 stdio.h 中,用户可以直接使用。;文件结构类型FILE:
typedef struct
{ int _fd; /*文件位置指针,即当前文件的读写位置*/
int _cleft; /* 文件缓冲区中剩余的字节数 */
int _mode; /* 文件操作模式 */
char * nextc; /*用于文件读写的下一个字符位置*/
char * _buff; /* 文件缓冲区位置(指针) */
} FILE ;
文件结构变量在打开文件时由操作系统自动建立,用户使用文件时无需重复定义。
在使用文件的时候要使用文件包含命令: #include stdio.h;11.2 文件处理;使用文件的一般步骤
打开文件 → 操作文件 → 关闭文件
打开文件:建立用户程序与文件的联系,为文件开辟文件缓冲区。
操作文件:是指对文件的读、写、追加和定位操作:
读操作:将文件中的数据读入计算机。
写操作:向文件输出数据。
追加操作:将数据写到原有数据的后面。
定位操作:移动文件读写位置指针。
关闭文件:切断文件与程序的联系,将文件缓冲区的内容写入磁盘,并释放文件缓冲区。;打开文件(fopen)
fopen函数的调用形式是:
FILE * fp;
fp = fopen (文件名, 文件使用方式);
文件名:需要打开的文件名称(字符串)。
文件使用方式:是具有特定含义的符号。
函数功能:
按指定的文件使用方式打开指定的文件。
若文件打开成功,则返回值为非NULL指针;
若文件打开失败,返回NULL。;11.2 文件处理;二进制文件的三种基本打开方式
“rb”:只读方式
“wb”:只写方式
“ab”:追加方式
文件的其它打开方式
“r+”:可对文本文件进行读/写操作。若文件不存在返回NULL;若文件存在,内容不会被清空。
“w+”:可对文本文件进行读/写操作。若文件已经存在,则要先将文件原来的内容清空。
“a+”:可对文本文件进行读/追加操作。
“rb+”:可对二进制文件进行读/写操作。
“wb+”:可对二进制文件进行读/写操作。
“ab+”:可对二进制文件进行读/追加操作。;常见文件打开操作
if ((fp = fopen (filename, r)) == NULL )
{ printf (Cannot open file.\n);
exit (0); /*打开文件出错,调用库函数终止程序*/
}
含义:以只读方式打开文件名为filename的文件。
文件名可以是从盘符开始的完整路径名,也可以是相对路径。
;11.2 文件处理;11.2 文件处理;关闭文件(fclose)
fclose函数的调用形式:
FILE * fp; …..
fclose ( fp );
fp:已经打
原创力文档

文档评论(0)