第七章 C++的IO流类库.ppt

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

第七章 C++的I/O流类库 计算机基础教研室 本章作业 P274 7.1、7.2、7.5 、 7.15 先建立一个输出文件,并写入字符串“You are always welcome!”,然后关闭该文件,再按输入模式打开它,并读取其中信息,在屏幕上显示。 * * 面向对象程序设计及C++ 主要内容 基本概念 C++ 的流及流类库 用户自定义类型的输入/输出 文件的输入/输出 应用举例 基本概念 流:与数据传送有关系的事物叫做流,C++用流表示数据的传输操作。流总是与某一设备(如:键盘、屏幕、硬盘、软盘等)相联系。 流类:C++为输入/输出定义了一组不同的类(包含要进行传送的数据的结构、属性、特征和行为,都将其放在流库中),叫做流类。 流的对象:用流类声明该流类的一个对象,代表某个输入设备或输出设备,并与具体的某个文件相联系,叫做流的对象。 输入流:有一种流表示数据从某个载体或设备传送到内存缓冲区变量中,叫做输入流。 输出流:有一种流表示数据从内存送到某个载体或设备中,叫做输出流。 7.2 C++ 的流及流类库 C++流库(stream library):用派生方法建立起来的一个输入输出类库,它有两个平行的基类:streambuf类和ios类,它们在iostream.h中定义,是两个非常低级的类,所有流类均以两者之一作为其基类。 一、streambuf类 streambuf类主要负责缓冲区的处理。缓冲区由一字符序列和两个指针(输入缓冲区指针和输出缓冲区指针)组成,这两个指针指向字符要被插入或被取出的位置。 streambuf类可以派生出三个类:filebuf类、strstreambuf类和conbuf类。 它们的类等级如下: streambuf filebuf strstreambuf conbuf 二、ios类 ios类及其派生类提供用户使用流类的接口,提供了输入和输出所需要的公共操作, 它支持对streambuf的缓冲区进行输入输出时的格式化或非格式化转换。 ios类有四个直接派生类:istream(输入流)、ostream(输出流)、fstreambase(文件流)、strstreambase(串流)。 ios istream ostream fstreambase strstreambase 以这四种基本的流类为基础,可派生出多种实用的流类: iostream(输入/输出流) ifstream(输入文件流) ofstream(输出文件流) fstream(输入/输出文件流) … 在istream、ostream和iostream类的基础上分别重载运算符“=”,就得到了istream_withassign,ostream_withassign和iostream_withassign类。 类等级如下: 当开始执行C++程序时,C++会有几个自动打开的预定义流,它们是: cin: 与标准输入设备相关的流。 cout: 与标准输出设备相关的流。 cerr和clog:与标准错误输出设备相关的流。 cerr和clog之间的区别是cerr没有被缓冲,clog被缓冲,只有当缓冲区满时,才进行输出。 这四个预定义的流在iostream.h里被说明为withassign类的对象: extern istream_withassign cin; //等价于stdin extern ostream_withassign cout; //等价于stdout extern ostream_withassign cerr; //等价于stderr extern ostream_withassign clog; //等价于带缓冲的tderr 可以用istream和ostream等类声明自己的流对象。 7.4用户自定义类型的输入/输出 一、重载输出运算符“” 输出运算符 也称插入运算符,有两个操作数,左操作数为ostream类类型的对象,右操作数可以是一个预定义类型的变量,也可以是重载了该运算符()的类的对象。 重载运算符 的

文档评论(0)

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

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

1亿VIP精品文档

相关文档