第7讲基于C++流类库文件输入输出.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7讲 基于C++流类库的文件输入输出 本讲主要内容 C++的输入输出系统 基于C++流类库的文本文件的读写 基于C++流类库的二进制文件的读写 C++程序的结构(略) C++的输入输出系统 面向对象的输入输出系统 C++完全支持C语言的输入输出系统,并且还定义了一套面向对象的输入输出系统。 C++提供的用于输入输出的类体系可以: 进行系统预定义类型的输入输出; 进行程序员自定义类型的输入输出。 C++的I/O流类,是最常用的I/O系统。 C++的流及流类库 1 .什么是C++的流(stream) ? #include iostream.h void main( ) { char s[10]; cins; couts[0]; } 流类和流的对象 广义上讲与数据传送有关的事务叫做流,例如可把文件和变量叫做流; 流可代表要传送的数据的结构、属性和行为特性,用一个名字表示,叫做流类; 而用流代表输入设备和输出设备,叫做流的对象。 2.流的提取和插入 使用特定的操作从流中获取数据或向流中添加数据: 从流中获取数据称为提取操作(在C++中用提取符实现,即输入) 向流中添加数据称为插入操作(在C++中用插入符实现,即输出) 3.C++的流类库 将完成输入/输出操作的类称为流类,由流类组成了流类库,C++流类库是用继承方法组织起来的一个输入输出类库。 ios类用来提供一些关于对流状态进行设置的功能,ios类及其派生类为用户提供使用流类的接口; streambuf类是为ios类及其派生类为提供对数据的缓冲支持。 流类库的基本结构 各类的功能 ios是个虚基类。提供流的格式化输入/输出操作成员函数和错误处理成员函数。 istream 提供流的输入操作(提取操作)的成员函数。 ostream 提供流的输出操作(插入操作)的成员函数。 iostream 支持对同一个流同时进行输入/输出操作(提取操作和插入操作)。 streambuf 管理流的缓冲区。 支持文件的流类 各类的功能 fstreambase 文件流的共同基类,定义了流与文件的连接,文件操作中不使用这个类; ifstream 用于读文件(对文件进行提取操作) ofstream 用于写文件(对文件进行插入操作); fstream 用于文件的读/写操作(对文件进行提取操作和文件进行插入操作); filebuf 管理文件操作的缓冲区,用来作上述类的缓冲支持; 头文件 所有使用文件流类库的程序必须有: # include fstream.h 支持预定义的流类 withassign withassign 定义了流与设备相关联的操作; istream_withassign 支持预定义输入操作; ostream_withassign 支持预定义输出操作; iostream_withassign 支持预定义输入/输出操作; _withassign类的对象 常用的标准输入输出流cin、cout、cerr、clog是在iostream.h中说明的_withassign类的对象: istream_withassign cin; //与标准输入设备相关联 ostream_withassign cout; //与标准输出设备相关联 ostream_withassign cerr; //与标准错误输出设备相关联(提供不带缓冲区的输出) ostream_withassign clog; //与标准错误输出设备相关联(提供带缓冲区的输出) 4.I/O 流在C++中所起的作用 操作系统将键盘、屏幕、打印机和通讯接口作为扩充文件来处理的; I/O流类就是用来与这些扩充文件进行交互的,实现数据的输入和输出。 基于C++流类库的文本文件的读写 【例6-1】文本文件的读写。为案例程序增加文件保存功能。将“学生”对象的数据保存到文件中。 【分析】案例程序定义的各种类对象存在于内存中,需要使用C++输入输出类库提供的相关函数,将内存数据永久保存到文件中,再将文件中的数据读入到内存中的相应对象中。 文件的操作过程为: 打开文件 读写文件 关闭文件 【程序编写】 读写学生对象的数据,需要为CStudent类添加相应的读写成员函数。 按照案例程序的类层次关系和各种属性数据所在 的类层次,读写成员函数应该添加到 CStudent类的基类CPerson类中,之后继承到CStudent类中。 在Person.h文件中添加成员函数声明: //数据写入文件 virtual void WriteFile(ofstream fs); //从文件中读取数据 virtual void ReadFile(ifstream fs); 在Perso

文档评论(0)

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

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

1亿VIP精品文档

相关文档