文件与文件流讲述.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件与文件流讲述

文件流 文件的概念 在磁盘上保存的信息是按文件的形式组织的,每个文件都对应一个文件名,并且属于某个物理盘或逻辑盘的目录层次结构中一个确定的目录之下。 一个文件名由文件主名和扩展名两部分组成,它们之间用圆点(即小数点)分开,扩展名可以省略,当省略时也要省略掉前面的圆点。 文件主名是由用户命名的一个有效的C++标识符, 为了同其他软件系统兼容,一般让文件主名为不超过8个有效字符的标识符, 同时为了便于记忆和使用,最好使文件主名的含义与所存的文件内容相一致。 文件扩展名也是由用户命名的、1至3个字符组成的、有效的C++标识符,通常用它来区分文件的类型。如在C++系统中,用扩展名h表示头文件,用扩展名cpp表示程序文件,用obj表示程序文件被编译后生成的目标文件,用exe表示连接整个程序中所有目标文件后生成的可执行文件。 对于用户建立的用于保存数据的文件,通常用dat表示扩展名,若它是由字符构成的文本文件则也用txt作为扩展名。 在C++程序中使用的保存数据的文件按存储格式分为两种类型: 一种为字符格式文件,简称字符文件, 另一种为内部格式文件,简称字节文件。 字符文件又称ASCII码文件或文本文件,字节文件又称二进制文件。 在字符文件中,每个字节单元的内容为字符的ASCII码,被读出后能够直接送到显示器或打印机上显示或打印出对应的字符,供人们直接阅读。 在字节文件中,文件内容是数据的内部表示,是从内存中直接复制过来的。 当然对于字符信息,数据的内部表示就是ASCII码表示,所以在字符文件和在字节文件中保存的字符信息没有差别, 但对于数值信息,数据的内部表示和ASCII码表示截然不同,所以在字符文件和在字节文件中保存的数值信息也截然不同。 要在程序中使用文件时,首先要在开始包含#includefstream.h命令。 由它提供的输入文件流类ifstream、输出文件流类ofstream和输入输出文件流类fstream定义用户所需要的文件流对象, 然后利用该对象调用相应类中的open成员函数,按照一定的打开方式打开一个文件。 文件被打开后,就可以通过流对象访问它了,访问结束后再通过流对象关闭它。 文件的打开与关闭 流可以分为3类:输入流、输出流以及输入/输出流,相应地必须将流说明为ifstream、ofstream以及fstream类的对象。例如: ifstream ifile; //说明一个输入流 ofstream ofile; //说明一个输出流 fstream iofile; //说明一个输入/输出流 说明了流对象之后,可使用函数open()打开文件。文件的打开即是在流与文件之间建立一个连接。open()的函数原型为: void open(const char * filename,int mode,int prot=filebuf::openprot); 其中,filename是文件名字,它可包含路径说明。 mode说明文件打开的模式,它对文件的操作影响重大,mode的取值必须是以下值之一: ios::in 打开文件进行读操作 ios::out 打开文件进行写操作 ios::ate 打开时文件指针定位到文件尾 ios::app 添加模式,所有增加都在文件尾部 进行 ios::trunc 如果文件已存在则清空原文件 ios::nocreate 如果文件不存在则打开失败 ios::noreplace 如果文件存在则打开失败 ios::binary 二进制文件(非文本文件) 对于ifstream流,mode的默认值为ios::in;对于ofstream流,mode的默认值为ios::out。 prot决定文件的访问方式,取值为: 0 普通文件 1 只读文件 2 隐含文件 4 系统文件 一般情况下,该访问方式使用默认值。 与其他状态标志一样,mode的符号常量可以用位或运算“|”组合在一起,如ios::in|ios::binary表示以只读方式打开二进制文件。 注意:打开文件操作并不能保证总是正确的,如文件不存在、磁盘损坏等原因可能造成打开文件失败。如果打开文件失败后,程序还继续执行文件的读/写操作,将会产生严重错误。在这种情况下,应使用异常处理以提高程序的可靠性。 每个文件流类中都提供有一个关闭文件的成员函数close(), 当打开的文件操作结束后,就需要关闭它,使文件流与对应的物理文件断开联系。 关闭任何一个流对象所对应的文件,就是用这个流对象调用close()成员函数即可。 文件的

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档