- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ch10-C语言-文件操作
主讲老师:刘志强 * 主要内容 文件的概念 文件的打开/关闭 按格式读写文件 按字符读写文件 * 一、文件概述 在C语言中没有设置专门的输入、输出语句。I/O功能由I/O库函数来处理。 这些函数的共同之处是数据I/O操作都是通过标准输入设备 (一般为键盘) 和标准输出设备 (一般为显示器)进行。 大量I/O数据如何处理?靠键盘输入??不是。 大量I/O数据用什么方式处理?——文件! * 1、文件 文件:存于计算机中,具有唯一标识名的相关的一批数据的集合。 文件操作包括:读、写、删除、拷贝、显示和打印等。 C语言中引入了流式文件(stream)的概念, 即无论文件的内容是什么,一律看成是由字符(或字节)构成的序列,即字符流。 流式文件中的基本单位是字节, 磁盘文件和内存变量之间的数据交流以字节为基础。 * 流式文件处理中的基本概念 读: 从文件中将数据拷贝到内存变量中来。 根据情况不同, 一次可以读一个字节, 也可以根据内存变量的大小读相应数量的字节, 甚至可以一次将一批数据读到一片连续的存储区 (如数组或动态分配的存储块) 中; 写: 将内存变量中的数据拷贝到文件中去。 和读文件的情况相似, 一次可以将一个变量或者一片连续存储区中的数据写入文件; 文件指针: 一个存放文件读写位置的变量,用于指明对哪些数据进行操作。 在开始对某文件进行操作时将文件指针的值设置为0,表示读写操作应从文件首部开始执行; 每次读、写之后, 自动将文件指针的值加上本次读、写的字节数, 作为下次读写的位置。 * 缓冲区 由于磁盘的读写速度比内存的处理速度要慢一个数量级,而且磁盘驱动器是机电设备,定位精度相对比较差, 所以磁盘数据存取以扇区 (sector,磁盘上某磁道中的一个弧形段,定长,例如512B或1024B)或者簇 (cluster,由若干连续的扇区组成)为单位。具体做法是在内存中划出一片存储单元,称为缓冲区。 从磁盘中读取数据时先将含有该数据的扇区或簇读到缓冲区中,然后再将具体的数据拷贝到应用程序的变量中去。下次再读数据时, 首先判断数据是否在缓冲区中,如果在,则直接从缓冲区中读,否则就要从磁盘中再读另一个扇区或簇。 向磁盘中写数据也是这样,数据总是先写入缓冲区中,直到缓冲区写满之后再一起送入磁盘。为了能使应用程序同时处理若干个文件,就必需在内存中开辟多个缓冲区。对缓冲区的管理是操作系统的基本功能之一。 * 2. 文件操作函数 1.打开和关闭文件: fopen() fclose() 2.读、写文件: 格式读写fprintf()、fscanf() 二进制读写 字符读写 3.文件指针管理: 文件指针重新定位 fseek() 求当前文件指针位置 ftell() 文件结束检测 feof() * 二、文件的打开与关闭 打开文件 如果要对一个文件进行操作,就必须为其准备相应的缓冲区、缓冲区管理变量和文件指针。在头文件stdio.h 中定义了一个名为FILE的头文件stdio.h中定义了一个名为FILE的结构体类型。在使用一个文件之前,必须将文件和一个特定的FILE类型的变量联系起来, 这个工作就叫做打开文件。 打开文件由fopen()函数实现 关闭文件 如果应用程序不再使用某个文件了,就应该及时将其占用的缓冲区等资源释放,这个工作就叫做关闭文件。 关闭文件可以使用fclose()函数完成。 * 1、 fopen()函数 fopen()函数的原型为: FILE *fopen(char *filename,char *mode); 其中参数: filename要打开文件的文件名,可以包含路径。 mode是打开文件的方式,可取下列符号: r 读方式 w 写创建方式 a 写追加方式 + 为位于r、w、a之后,表示对于读写规定的补充。 r+ 表示以读、写方式打开一个已经存在的文件 w+ 表示建立一个新文件用于读和写; a+ 表示以读、写方式打开一个已经存在的文件。 * Mode参数(续) b 按二进制方式打开文件。该符号要加在前面的读写方式说明之后。所谓按二进制方式打开文件,即在读、时将文件中的数据作为字节流, 不作任何加工。 t 按文本文件方式打开文件。文本文件可以看成是字符流, 并且以“行”为逻辑单位。文本文件的特点是每行有一个行结束标志,由两个字符构成: 回车符和换行符。为了处理方便, 在读、写时对这个特殊符号要作预加工, 例如在读文件时将回车、换行两个字符合并成一个换行符, 在写文件时再将一个换行符展开为回车、换行两个符号。另外, 在文本文件中使用文件结束符 (其值为0x1a) 表示文件的结束。 * fopen()返回值 如果文件打开成功,fope
文档评论(0)