[工学]第6章 IO流类库.pptVIP

  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文档。上传文档
查看更多
[工学]第6章 IO流类库

第6章 I/O流类库 第6章 I/O流类库 流类库及其结构 流的格式化控制 流的出错处理 文件流操作 流类库及其结构 从文件到流 流类库结构 定义流对象 流对象cin和cout的操作 从文件到流 C语言是用文件系统作为程序与输入/输出设备间交互的接口,所有的输入/输出操作都抽象为对文件指针的操作和直接对文件的读写 C++提供了更高抽象层次的输入/输出机制,它用流(Stream)作为程序的系统调用接口 流确定了数据的生产者与数据的消费者之间的联系:从流中获取数据,称为提取操作;把数据送入流中,称为插入操作 流包含了四层概念:流类库、流类、流对象和流类成员 流类库结构 基本类 ·streambuf类:用以管理流的缓冲区 ·ios类:提供格式、错误检测和状态信息; ·ostream类:用来创建输出流; ·istream类:用来创建输入流; ·iostream类:用来创建输入/输出流 流类库中的类及其对应的头文件 定义流对象 在iostream.h文件中,把4个预定义的开放流声明为withassign类的对象: extern istream_withassign cin; extern ostream_withassign cout; extern ostream_withassign cerr; extern ostream_withassign clog; · cin是istream-withassign类的对象,称为标准输入流,缺省时键盘为数据源,也可以重定向为其他设备; · cout是ostream-withassign类的对象,称为标准输出流,缺省时显示器为数据池,也可以重定向为其他设备; · cerr和clog是ostream-withassign类的对象,称为标准错误输出流,固定关联到显示器 流对象cin和cout的操作 流对象cin和cout的操作主要由定义它们的类istream和ostream的成员函数决定。了解了这两个类定义的成员函数,就会知道流对象cin和cout可以进行的主要操作 类istream的定义 1)提取运算符“”定义在istream类中,并且对所有的预定义类型都给出了其重载定义 2)对于istream类中定义的其他成员函数,流对象可以使用分量运算符引用,即采用格式: cin . 成员函数名() 例6.1.1 例6.1.2 例6.1.3 类ostream的定义 1)插入运算符“”定义在ostream类中,并且对所有的预定义类型都给出了其重载定义 2)对于ostream类中定义的其他成员函数,流对象可以使用分量运算符引用 例6.1.4 例6.1.5 例6.1.6 流的格式化控制 使用ios类定义的格式化成员函数 使用I/O操纵算子 使用ios类定义的格式化成员函数 数据格式可以有:跳过空白、左对齐、右对齐、填充字符进制转换、表示形式等 对不同的需求,常常要采用它们的某种组合 为了有效地表示进行格式控制,C++采用一个long int类型(16位)的字作为格式状态字 ios类中定义的几个用于格式化I/O的成员函数 ios::flags函数 说明 a)showflags()是一个输出格式状态字函数 b)设flags为当前格式状态字 c)带参flags函数先返回当前格式状态字,再设置新的格式状态字 d)输入流与输出流有不同的格式状态字 ios::setf()函数与ios::unsetf()函数 int ios::width(int)函数 int ios::precision(int)函数 使用I/O操纵算子 预定义的I/O操纵算子 自定义I/O操纵算子 预定义的I/O操纵算子 每个操纵算子有一个流引用参数并返回一个指向同一流的引用,因而可以嵌入到插入或提取表达式中来改变流的状态。这些操纵算子的原型说明一部分(无参的)定义或声明在iostream.h中,一些(有参的)定义或声明在头文件iomanip.h中 C++预定义的操纵算子 例6.2.6 自定义I/O操纵算子 C++允许程序员自定义I/O操纵算子,把程序中频繁使用的I/O操作集成,使I/O密集的程序变得更加清晰高效,并可以避免意外错误。I/O操纵算子用函数来实现。下面从有无参数两个方面分别介绍自定义I/O操纵算子的基本方法 自定义无参I/O操纵算子 说明 a)操纵算子返回stream是一个关键,否则操纵算子就不能用在流的I/O操纵序列中 b)所谓无参是指操纵算子无参数,而不是指函数无参 c)上述框架是自定义提取(输入)操纵算子的函数框架,当把istream换为ostream时,即成为自定义插入(输出)操纵算子的函数

文档评论(0)

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

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

1亿VIP精品文档

相关文档