[小学教育]第14章 输入/输出流类库.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文档。上传文档
查看更多
[小学教育]第14章 输入/输出流类库

第14章 输入/输出流类库 输入/输出:程序与计算机外设之间的数据交换。 输入:程序从外设接收数据。 输出:程序将数据输出到外设。 C++语言本身没有专门的输入/输出语句,但C++的编译系统通常都提供输入/输出流类库,用于用户输入/输出。 14.1 概述 流 数据的输入/输出以字节为单位,依次逐个进行。 数据的字节序列称为字节流,简称流(Stream)。按对字节内容的解释方式分,字节流分为字符流(也称文本流)和二进制流。 字符流:将字节流的每个字节按ASCII字符解释。数据传输时需做转换,效率较低,但字符流可直接编辑、显示或打印,字符流文件通行于各类计算机。 例如int型数值1234567在内存中占4字节,但输出前要先转换成数值串“1234567”后,才能输出。反之亦然。 源程序文件和文本文件都是字符流。 二进制流:将字节流的每个字节按二进制方式解释。数据传输时不做转换,效率高,但异类计算机对数据的二进制存放格式存在差异,且无法人工阅读,二进制流文件可移植性较差。 输入/输出流的类体系称为流类,流类的实现称为流类库。 文件 文件:相关数据的字节序列集合。 计算机中的程序、数据、文档常以文件形式存于外存。 输入/输出设备具有字节流特征,也是文件。例如键盘是输入文件,显示器、打印机是输出文件。 不同的文件所允许的操作可能不同。例如对于磁盘文件,可以将数据写入文件,也可以将数据从文件中取出;而对于打印机文件,只能将数据写入,而不能从打印机文件中取出数据。 文件名:为文件取的名字,以区别不同的文件。 文件名通常由使用标识符,但不同的计算机系统,对文件名的组成规则有所不同,参见有关操作系统。 程序可通过文件名来使用文件。 缓冲 缓冲区:系统在主存中开辟的、用来临时存放输入/输出数据的区域。如先将输入的数据送到缓冲区,再从缓冲区中取出。 缓冲区的作用:因输入/输出设备的速度比CPU慢得多,若CPU直接与外设交换数据,必然占用大量CPU时间,降低CPU的使用效率。使用缓冲后,CPU只要从缓冲区中取数据或者把数据写入缓冲区,而不必等待外设的具体输入/输出操作,显著提高了CPU的使用效率。 按在缓冲区中是否立即处理,流分为缓冲流和非缓冲流。常用缓冲流,仅在特殊场合,才用非缓冲流。 非缓冲流:一旦数据送入缓冲区,立即处理。 缓冲流:仅当缓冲区满或当前送入的数据为新的一行字符时,系统才对流中的数据进行处理(称为刷新)。 14.2 基本I/O流类体系 概述 基本I/O流类体系:如图所示,在iostream.h中说明,支持C++输入/输出程序设计。 预定义的标准流与提取和插入运算符 预定义的标准流对象:cin、cout、cerr和clog。 需在程序中包含头文件“iostream.h”方可使用。 cin为标准输入流,缺省代表键盘。 cout为标准输出流,缺省代表显示器。 cerr和clog为标准错误信息输出流,缺省代表显示器。 cerr为非缓冲流,其余为缓冲流。 提取运算符:用于从流中提取一个字节序列。 插入运算符:用于向流中插入一个字节序列。 cin使用提取运算符实现数据的输入,其余三个标准流使用插入运算符实现数据的输出。 输入流自动将要输入的字节序列形式的数据变换成计算机内部形式的数据(二进制数或ASCII)后,再赋给变量,变换后的格式由变量的类型确定。输出流自动将要输出的数据变换成字节序列后,送到输出流中。 例14.1 使用流cerr和clog实现数据的输出。 #includeiostream.h void main(void) { float a,b; cerr输入a和b的值:\n; cinab; if(b!=0) couta/b=a/b\n; else cerr除数为零!\n; } cout、cerr和clog的用法相同但作用不同。 cout的输出可重定向(请参见有关操作系统的介绍)。 cerr和clog的输出不可重定向。 clog为缓冲流,输出的数据不能及时显示。 通常将程序中的提示信息(输入提示和出错提示等)用cerr输出,结果数据用cout输出,而clog很少使用。 流的格式控制 格式化输入/输出仅用于文本流,而二进制流是原样输入输出,不必做格式化转换。“iomanip.h”中预定义了13个格式控制函数,用于控制输入/输出数据的格式,如下表所示。 例14.2 用格式控制函数指定输出数据的域宽和数制。 #includeiostream.h #includeiomanip.h ? void main(void) { int a=256,b=128; cout setw(8) ab=b\n; cout hex ab= dec b\n; } 流的错误处理 state是类ios中说明的整型数据成员,用

文档评论(0)

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

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档