网站大量收购独家精品文档,联系QQ:2885784924

输入输出流类.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
输入输出流类; 外部设备可分为人机交互设备和存储设备两个大类。 人机交互设备主要指键盘、显示器等终端控制台设备和打印机。 存储设备指磁带、磁(软、硬)盘、光盘等以文件形式存储持久数据的设备。 ; 早期程序设计语言中通常以文件方式来统一人机交互设备和存储设备的输入输出操作。即将人机交互设备当作一种特殊文件对待。 以文件方式统一管理外部设备可以屏蔽实际物理设备的差异,有利于整体上简化程序设计语言与外部设备交换信息的处理过程。 ; C++语言对输入输出的处理引入了“流”这个比文件抽象程度更高的概念。输入输出操作被看作数据在源设备对象与目标设备对象之间的流动。 C++中完成输入输出操作的类称为流类,并提供了可重用的流类库。;11. 1 C++流库结构 标准ANSI C程序中的绝大部分工作是由ANSI C标准库中的printf,scanf完成的,I/O功能作为ANSI C标准库功能的一部分被提供。在C++中iostream库提供了printf、scanf功能的替代方法,输入输出功能的实现由一个iostream对象完成。;1.? 流缓冲区类 在C++I/O类库定义文件iostream.h中有一个streambuf类,它用来提供物理设备的接口。缓冲区由一段预留的字符存储空间和两个指针组成,两个指针分别指向字符要被插入或被取出的位置。 streambuf类定义了一组缓冲或处理流的通用方法,诸如设置缓冲区,移动指针,存、取字符等。 ;streambuf类有三个派生类,其中: (1)?????? conbuf在constream.h中定义,提供光标控制、清屏,定义活动窗口等控制台操作接口和I/O缓冲区管理功能。 (2)?????? filebuf在fstream.h中定义,它用来维护文件缓冲区的打开,关闭,读、写,建立磁盘文件的内存代理。 (3)??????strstreambuf在strstream.h中定义,提供在内存进行提取和插入操作的缓冲区管理。;2.? 输入输出流类 iostream.h中还有以ios类为基类的一组流类的定义。 ios类及其派生类均含有一个指向streambuf类的指针。通过streambuf类代理物理设备的操作。 从类ios开始,逐级派生,形成了较为复杂的结构,要很好地使用C++流类,必须逐级了解其父类的public、和protected类型的成员函数、成员变量。;;流类分类 ;; ;标准输入输出 标准输入与输出是指读键盘的数据和将数据输出到屏幕。 C++用istream_withassign类和ostream_withsaaign类来实现标准输入输出功能。 iostream.h文件中以下两句定义cin和cout两个标准流对象: istream_withassign cin; ostream_withassign cout; 在标准输入类istream_withassign和标准输出类ostream_withassign分别对操作符“” “”进行了重载,用于完成对各种简单数据类型的输入和输出。 ;格式化的输入输出 C++提供了两种格式控制函数用来控制输入输出的格式: ios类中定义的格式控制成员函数 基于流对象的操纵函数。 相比之下操纵函数使用更为方便。下面重点介绍操纵函数的概念和用法。 ;1.ios 类中定义的格式控制标志 ios 类中定义了一个数据成员:格式控制标志字long x_flags。x_flags每一位的状态值用枚举符号常量定义。 enum{ skipws =0x0001, //跳过输入空格 left =0x0002, //输出左对齐调整 right =0x0004, //输出右对齐调整 internal =0x0008, //输出符号和基指示符后的填补 dec =0x0010, //转换为十进制 (in/out) oct =0x0020, //转换为八进制 (in/out) hex =0x0040, //转换为十六进制 (in/out) showbase=0x0080, //输出显示基指示符 showpoint=0x0100, //输出显示小数点 uppercase=0x0200, //大写十六进制输出 showpos =0x0400, //正整数显示前加上”+” scientific=0x0800, //输出用科学表示

文档评论(0)

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

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

1亿VIP精品文档

相关文档