C++程序设计-北京林业大学0%-第0章文件.pptVIP

C++程序设计-北京林业大学0%-第0章文件.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计-北京林业大学0%-第0章文件

北京林业大学 软件教研室 第十章 文件 本章主要内容 (1)掌握文件的基本概念。 (2)掌握用FILE结构进行文件的打开、读写和关闭的方法。 (3)了解文件流类的继承关系。 (4)掌握文件流进行文件的打开、读写和关闭的方法。 文件是指存储在存储介质上的数据的集合。 按文件中数据的存放形式可将文件分为: ASCII文件 又称文本文件,它的每一个字节存放一个ASCII代码,代表一个字符; 其优点是可直接按字符形式输出文件的内容,也可用一般的字处理软件直接打开并查看文件的内容; 二进制文件 将数据用二进制形式存放在文件中,并保持了数据在内存中存放的原有格式; 其优点是存储效率高,无须进行存储形式的转换,但不能直接按字符形式输出。 无论是文本文件还是二进制文件都需要用“文件指针”来操纵,此处的“文件指针”是指表示读写文件的文件位置指示器。 一个文件指针总是和一个文件相关联,当文件每一次打开时,文件指针都指向文件的开始; 随着对文件进行操作,文件指针不断地在文件中移动,并一直指向必威体育精装版处理的字符(字节)位置。 对文件的读写操作有两种方式: 顺序文件操作 从文件的第一个字符(字节)开始顺序地处理到文件的最后一个字符(字节)。 只能从文件的开始处依次顺序读写文件内容,而不能任意读写文件内容。 随机文件操作 在文件中通过C++相关的函数移动文件指针,并指向所要处理的字符(字节)。 可以在文件中来回移动文件指针和非顺序地读写文件内容。 能快速地检索、修改和删除文件中的信息。 10.1 通过FILE结构进行文件操作 C++保留了ANSI C对文件的处理方式,程序对每个文件都使用一个单独的FILE结构来处理。 每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息(如文件的名字、文件状态、文件当前位置等)。 这些信息保存在一个类型为FILE的结构体变量中。 该结构体类型FILE是由系统定义的。 在stdio.h文件中对FILE结构体类型是这样定义的: typedef struct { int _fd; //文件号 int _cleft; //缓冲区中剩余的字符 int _mode; //文件操作模式 char *_nextc; //下一个字符位置 char *_buff; //文件缓冲区位置 } FILE; 定义文件型指针变量,如:FILE *fp; fp是一个指向FILE类型结构体的指针变量。 可以使fp指向某一个文件的结构体变量,从而通过该结构体变量中的文件信息能够访问该文件。 如果有n个文件,一般应设n个指针变量,使它们分别指向n个文件以实现对文件的访问。 对文件读写之前应该“打开”该文件,在使用结束之后应“关闭”该文件。 10.1.1 打开文件 stdio.h文件中定义的fopen()函数实现文件的建立和打开操作。 FILE *fp; fp=fopen(文件名,文件的使用方式); 在打开一个文件时,通知给编译系统以下3个信息: (1)需要打开的文件名,也就是准备访问的文件的名字。 (2)使用文件的方式(“读”还是“写”等)。文件的使用方式如表所示。 (3)让哪一个指针变量指向被打开的文件。 说明: (1)用r方式打开的文件只能用于向计算机输入而不能用作向该文件输出数据,而且该文件应该已经存在,不能用r方式打开一个并不存在的文件,否则出错。 (2)用“w”方式打开的文件只能用于向该文件写数据,而不能用来向计算机输入。 如果原来不存在该文件则在打开时新建立一个以指定的名字命名的文件。 如果原来已存在一个以该文件名命名的文件,则在打开时将该文件删去,然后重新建立一个新文件。 (3)如果希望向文件末尾添加新的数据(不希望删除原有数据),则应该用a方式打开。但此时该文件必须已存在,否则将得到出错信息。打开时,位置指针移到文件末尾。 (4)用r+、w+、a+方式打开的文件既可以用来输入数据,也可以用来输出数据。 ① 用r+方式时该文件应该已经存在。 ② 用w+方式则新建立一个文件,先向此文件写数据,然后可以读此文件中的数据。 ③ 用a+方式打开的文件,原来的文件不被删去,位置指针移到文件末尾,可以添加,也可以读。 (5)如果不能实现“打开”的任务,fopen函数将会带回一个出错信息。出错的原因可能是: ① 用r方式打开一个并不存在的文件; ② 磁盘出故障; ③ 磁盘已满无法建立新文件等。 常用下面的方法打开一个文件: if ((fp=fopen(file,w))==NULL) coutcannot open this file.\nendl; (6)用以上方式可以打开文本文件或二进制文件,这是ANSI C的规定,用同一种缓冲文件系统来处理文本文件和二进制文件。 10.1.2

文档评论(0)

叮当文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档