[工学]第8章输入输出流对象.ppt

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

第8章输入/输出流对象 《解析C++面向对象程序设计》 第8章 输入/输出流对象 内容提要 8.1 螺旋矩阵的输入/输出问题 8.2 流 8.3 无格式输入/输出 8.4 输入/输出的格式控制 (重点) 8.6 自定义类型对象的输入输出 8.7 文件的输入/输出问题 提出问题 编程输出M*M的螺旋矩阵,要求数据间距与M相同。例如,4*4的螺旋矩阵,其间距为4: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 分析问题 C++没有定义任何用于执行输入或输出的语句,但可以使用C语言中的标准I/O函数printf()和scanf()来解决此问题。 【例8-2】有如下程序: //example8_2.cpp #include stdio.h int b=20; float a=5.6; int main() { printf(%d\n,a); scanf(%d,a); scanf(%d,b); printf(%d\n,abc); return 0; } printf()与scanf()存在以下两个缺点: 1.非类型安全 2.不可扩充性 C++使用类型安全(type safe)的I/O流操作。不同类型的I/O流操作都是重载的,没有定义过I/O功能的类型不具备I/O操作的能力。C++标准库既可作为标准数据类型数据的I/O,也能用于自定义类型的对象的I/O,这种扩展性是C++最有价值的特点之一。 C++用输入输出流来解决这个问题。下面先介绍流的概念。 流 在C++程序中,数据可以从键盘流入到程序中,也可以从程序中流向屏幕或磁盘文件。把数据的流动抽象为流。C++的输入输出操作是由流来处理的。 流的概念 所谓流(stream)是指数据从一个位置流向另一个位置。流是字节的序列。 输入/输出是一种数据传递操作,可以看作字符序列在计算机内存与外设之间的流动,C++将数据从一个对象到另一个对象的流动抽象为“流”。流动的方向不同,构成输入/输出流,即I/O流。 I/O流 在C++程序中,数据可以从键盘流入到程序,也可以从程序流向屏幕或磁盘文件。从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作。数据的输入/输出就是通过I/O流来实现的。 I/O流类库的层次结构 C++编译系统提供的I/O流类库含有两个平行基类: streambuf ios ios类有4个直接派生类: 输入流类istream 输出流类ostream 文件流类fstreambase 串流类strstreambase 标准输入/输出流对象 标准I/O流预定义了4个流类对象:cin、cout、cerr、clog。 操作系统给把外设用文件名的方式进行管理,因此程序设计要访问外设就跟访问文件一样方便。 I/O分为无格式支持的低级I/O和具有格式支持的高级I/O。 无格式支持的低级I/O以基本字节为操作对象,有格式支持的高级I/O把若干字节组合成有意义的单位,如整数、浮点数、字符、字符串及用户自定义类型等等。 无格式输入/输出 无格式输入/输出就是按系统预定义的格式进行的输入/输出。 按默认约定,每个C++程序都能使用标准I/O流,如标准输入、标准输出。 cin用来处理标准输入,即键盘输入;cout用来处理标准输出,即屏幕输出。它们被定义在iostream.h头文件中。 在使用cout和cin前,要用编译预处理命令将所使用的头文件包含到源程序中,其格式如下: 无格式输出 “”是预定义的插入运算符,作用在流类对象cout上,实现默认格式的屏幕输出。使用cout输出表达式值到屏幕上的格式如下: coutE1E2…Em; 其中,E1、E2、…、Em为均为表达式。功能是计算各表达式的值,并将结果输出到屏幕当前光标位置处。 无格式输出 cout是ostream流类的对象,它在iostream头文件中作为全局对象定义,其格式如下: ostream cout(stdout); 其中,stdout表示标准输出设备名(屏幕)。 在ostream流类中,对应每个基本数据类型定义运算符“”重载函数为友元,它们在ostream中声明: ostream operator(ostream dest,char* pSource); ostream operator(ostream dest,int source); ostream operator(ostream dest,char source); 无格式输入 “”是预定义的提取运算符,作用在流类对象cin上,实现默认格式的键盘输入。使用cin将数据输入到变量的格式如下:

文档评论(0)

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

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

1亿VIP精品文档

相关文档