C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 chap9_IO流类库
72页1、第9章 I/O流类库,主要内容 基本概念 C+的基本流类结构 Istream类和ostream类 格式控制 文件的读/写 可流类,9.1 基本概念,设备间的数据传送 内存 显示屏 内存 文件 键盘 内存 文件 内存 键盘 文件 流 面向对象技术中,任何设备都可以表示为相应类的对象,设备之间的数据传送即对象之间的数据传送。 数据从源对象到目的对象的传送可以抽象看做一个“流”。 当键入字符时,就可认为字符从键盘流入程序的数据结构中;,当写入磁盘文件时,也可认为程序流到磁盘上。 例如: cout变量名; 流类 把实现设备之间信息交换的类称作流类。 流库 若干流类的集合称做流类库。 C+流类库是用继承方法建立起来的一个输入/输出类库,它具有两个平行的基类即streambuf类和ios类,所有其它的流类都是从它们直接或间接地派生出来的。,9.2 C+的基本流库结构,C+为何建立自己的输入输出系统 C语言的输入/输出库函数不支持用户自定义的数据类型(如结构、类) ,用户也不能通过重载这些库函数来实现用户自定义数据类型的输入/输出。例如: struct my_struct int i; float
2、f; char *str; s; 如果:printf(“%my_struct”, s); /错误 因为printf只能识别系统预定义的类型。,C+流库结构 每个流都是一种与设备相联系的既有状态,又有操作的对象,即流对象。对流对象进行抽象就得到流类,流类形成的层次结构就构成流类库(或流库)。 C+流库主要由两个流类层次组成: 以streambuf类为父类的类层次 主要完成信息通过缓冲区的交换。 以ios类为父类的类层次 在streambuf类实现功能的基础上,增加了各种格式化的输入/输出控制方法。,C+流类库示意图: streambuf类层次结构 缓冲区:是一个队列数据结构,由一字符序列和两个指针组成,这两个指针分别指向字符要被插入或被取出的位置。 streambuf类为所有的streambuf类层次对象设置了一个固定的内存缓冲区,动态划分为两部分: 用做输入的取区,用取指针指示当前取字符位置。 用做输出的存区,用存指针指示当前存字符位置。,filebuf类 是在fstream.h中定义的streambuf类的一个派生类,它使用文件来保存缓冲区中的字符序列。 将filebuf同某个文件的
3、描述字相联系就称打开这个文件。 当写文件时,是将缓冲区的字符写到指定的文件中,之后刷新缓冲区; 当读文件时,是将指定文件中的内容读到缓冲区中来。,strstreambuf类 扩展了streambuf类的功能,增加了动态内存管理功能,提供了在内存中进行提取和插入操作的缓冲区管理。 stdiobuf类 主要用作C+语言的流类层次方法和C语言的标准输入/输出方法混合使用时系统的缓冲区管理。 在通过情况下,均使用这三个派生类,很少直接使用streambuf 类。,ios类层次结构 ios类及其派生类是在streambuf类实现的通过缓冲区的信息交换的基础上,进一步增加了各种格式化的输入/输出控制方法。它们为用户提供使用流类的接口,它们均有一个指向streambuf的指针。 ios类有四个直接派生类: istream ostream fstreambase strstreambase 这四种流作为流库中的基本流类。,ios类层次:,ios类的派生层次,从上图可看出各个类的继承关系,如: class ios; class istream : virtual public ios; class os
4、tream : virtual public ios; class iostream : public istream, public ostream; 在istream类、ostream类和iostream类的基础上,分别重载赋值运算符“=”,就派生出istream_withassign、 ostream_withassign和ipstream_withassign类,即: class istream_withasssign : public istream; class ostream_withasssign : public ostream; class iostream_withasssign : public iostream;,ios虚基类 主要完成流的状态设置、状态报告、显示精度、域宽、填充字符的设置,文件流的操作模式定义等。 istream类和ostream类 对运算符和进行重载。 iostream类 以istream类和ostream类为基类,多重继承派生。可同时进行输入输出操作。,在编写C+程序时,使用标准的输入/输出流cin和cout进行输入/输出,是因为开始执行
《C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 chap9_IO流类库》由会员E****分享,可在线阅读,更多相关《C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 chap9_IO流类库》请在金锄头文库上搜索。
逍遥游复习 知识点整理
近现代法德关系史 高三展示课3稿
当代大学生人生信仰及追求的调查研究
长相思 纳兰性德-ppt课件
课件:危机意识 一
英语ppt演讲关于阿甘正传
发达国家基础教育改革的动向与趋势 修改版
中国民间美术 课件.ppt
生物质发电技术与系统 课程ppt 第1章 生物质发电技术现状及发展趋势 2学时 -----2016
现代信号处理思考题 含答案
执业药师继续教育 抑郁症的药物治疗 100分
小学生的成长档案模板不用修改 万能型
增订六版 现代汉语 上册 第二章文字 思考与练习答案
国家财政ppt课件
加拿大英语介绍
六年级统计图的选择课件
中学生成长档案ppt
中国现代文学史期末复习整理
lohi和hihilo训练对女子赛艇运动员运动能力影响的比较研究
风雨贾平凹阅读答案
2024-04-11 25页
2024-04-11 37页
2024-04-11 28页
2024-04-11 31页
2024-04-11 36页
2024-04-11 29页
2024-04-11 22页
2024-04-11 27页
2024-04-11 34页
2024-04-11 32页