- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言--文件1
第8章 文件 * 文件概述 文件操作 第9章作业 实验12 文件概述 引言:P201 一、文件的概念 1、文件——指存储在外部介质上(如磁盘)一组相关数据的集合。 如:一个C程序是一个文件,一个word文档也是一个文件。 每个文件都有一个“文件名”,用户通过文件名访问文件。文件通常存放在磁盘上,使用时才调入内存。 二、文件的分类 1、按其存放的内容不同:程序文件、数据文件 2、从用户的角度看:普通文件、设备文件 文件概述 设备文件: C系统将外部设备也看成是一个特殊文件,如:显示器看成是标准输出文件,名为stdout,键盘看成是标准输入文件,名为stdin。“将数据输出到显示器”就等同于把数据写到/输出到文件stdout(即写操作),“从键盘输入数据”就等同于从文件stdin读入/输入数据(即读操作)。这样,系统就可通过对这些设备文件的管理来完成对相应设备的各种操作。 3、按数据的组织形式: (1)文本文件(ASCII文件):将文件看成是由一个一个字符组成,每个字节存放一个字符的ASCII码。 (2)二进制文件:数据按其在内存中的存储形式原样存放。 文件概述 如:int型数10000 内存的存储形式: ①ASCII形式 文本文件——占用存储空间多;需花费转换时间(当从内存向文本文件输出数值型数据和当从文本文件向内存输入数值型数据时,需要在ASCII码和二进制形式之间进行转换);可直接输出字符形式,便于对字符操作,便于输出到显示器或打印机。 文件概述 ②二进制形式 二进制文件——节省存储空间和转换时间;不能直接输出其字符形式;便于进行数据处理。 4、按照对文件的处理方式不同 :缓冲文件、非缓冲文件 三、缓冲文件系统和非缓冲文件系统 1、缓冲文件系统: 即标准文件系统或高级文件系统,由系统为每一个文件在内存区开辟一个缓冲区。 如P202图9-1所示:从“内存”的角度来理解“输入/输出”(“写/读”)。 文件概述 2、非缓冲文件系统 又称为低级文件系统,在输入、输出数据时,系统并不自动为文件开辟一个内存缓冲区,而是用户根据所使用数据的大小在程序中设置一数据缓冲区。 四、文件类型指针 1、文件结构体FILE (1)缓冲文件系统为每个正在使用的文件在内存中开辟一个区域,用来存放文件的相关信息。 (2)文件信息可用系统定义的名为FILE的结构体描述。 文件概述 (3)FILE定义在stdio.h中 typedef struct { int _fd; //文件号 int _cleft; //缓冲区中剩下的字符数 int _mode; //文件操作方式 char *_next; //文件当前读写位置 char *_buff; //文件缓冲区位置 }FILE; 2、文件类型指针 如:FILE *fp1, *fp2, *fp3; 使用:(1)文件打开时,系统自动建立文件结构体,并将该结构体的起始地址赋给一个文件指针,这样,可通过这个文件指针获得文件信息,实现对该文件的访问。 (2)文件关闭后,文件指针所指文件结构体被释放,文件指针置空(NULL)。 文件操作 在C语言中,对文件的操作都是通过库函数实现(接下来介绍这些库函数),包含在stdio.h中。 文件操作过程:打开文件→ 读写文件→ 关闭文件 一、文件的打开 FILE *fp; fp=fopen(“文件名”,“文件使用方式”); 功能:按指定的使用方式打开指定的文件,并为该文件分配一个文件缓冲区和一个FILE类型变量。 返回值:如果打开文件成功,则返回一个指向该文件的FILE类型指针,否则,返回NULL。 文件操作 使用文件方式(如表9-1): 以可读可写的方式打开一个文本/二进制文件,并可在文件尾追加数据 “a+/ab+” (读写) 以可读可写的方式建立一个文本/二进制文件 “w+/wb+” (读写) 以可读可写的方式打开一个文本/二进制文件 “r+/rb+” (读写) 向文本/二进制文件尾追加数据 “a/ab” (追加) 以写方式打开一个文本/二进制文件 “w/wb” (只写) 以只读方式打开一个文本/二进制文件 “r/rb” (只读) 含 义 使用文件方式 注:“w/wb”与“a/ab”的区别:前者——写入的新内容覆盖原有内容;后者——在文件尾写入新内容,原有内容仍存在。 文件操作 如:FILE *fp; fp=fopen(“c:\\feng\\test.dat
文档评论(0)