《C++程序设计》全套教学课件.ppt

  1. 1、本文档共371页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.2.1 什么是流 流通常与I/O操作联系在一起,使得I/O操作具有面向对象的特征。 数据的输入/输出以字节为单位,依次逐个进行。数据的字节序列经过处理后,从一个内存地址移动到另一个内存地址的数据流动被称为字节流,简称流(stream)。流实际上是通过引入缓冲器机制,将一个对象的数据送到另一个对象的传递过程抽象成数据从一个源点到一个终点的流动操作. 9.2 流 . 按在缓冲区中是否立即处理,流分为缓冲流和非缓冲流。 .按对字节内容的解释方式分,字节流分为字符流(也称文本流)和二进制流 流类库(stream library)是用继承方法建立的输入输出类库。流类库具有两个平行的基类:streambuf类和ios 类,所有流类均以两者之一作为基类。如图所示: 9.2.2 流类库体系 类 说 明 ios 类istream和ostream的虚基类,提供流的格式化输入/输出和错误处理,并通过指向类streambuf的对象的指针成员来管理流缓冲区。 istream 类ios的公有派生类,提供输入操作。 ostream 类ios的公有派生类,提供输出操作。 iostream 由类istream和ostream公有派生,并未增加新成员,以支持输入和输出操作。 istream_withassign cin的输入流类。 ostream_withassign cout、cerr和clog的输出流类。 streambuf 管理流缓冲区。 filebuf 管理文件缓冲区。 strstream 管理字符串缓冲区。 stdiobuf 管理标准I/O的缓冲区。 流类及派生类说明 预定义的标准流对象:cin、cout、cerr和clog,需在程序中包含头文件“iostream.h”方可使用。 cin为标准输入流,缺省代表键盘。 cout为标准输出流,缺省代表显示器。 cerr和clog为标准错误信息输出流,缺省代表显示器。 cerr为非缓冲流,其余为缓冲流。 提取运算符:用于从流中提取一个字节序列。 插入运算符:用于向流中插入一个字节序列。 cin使用提取运算符实现数据的输入,其余三个标准流使用插入运算符实现数据的输出。输入流自动将要输入的字节序列形式的数据变换成计算机内部形式的数据(二进制数或ASCII)后,再赋给变量,变换后的格式由变量的类型确定。输出流自动将要输出的数据变换成字节序列后,送到输出流中。 9.2.3 预定义的标准流与提取和插入运算符 #includeiostream.h void main(void) { float a,b; cerr输入a和b的值:\n; cinab; if(b != 0) cout a / b = a/b \n; else cerr 除数为零!\n; } 【例9.1】演示输入输出流 注意:cout、cerr和clog的用法相同但作用不同。cout的输出可重定向,cerr和clog的输出不可重定向。clog为缓冲流,输出的数据不能及时显示。通常将程序中的提示信息(输入提示和出错提示等)用cerr输出,结果数据用cout输出,而clog很少使用。 9.3.1 输入流 istream 9.3 输入与输出流 函 数 功 能 read 无格式输入指定字节数 get 从流中提取字符,包括空格 getline 从流中提取一行字符 ignore 提取并丢弃流中指定字符 peek 返回流中下一个字符,但不从流中删除 gcount 统计最后输入的字符个数 eatwhite 忽略前导空格 seekg 移动输入流指针 tellg 返回输入流中指定位置的指针值 operstor 提取运算符 istream 公共成员函数 #includeiostream.h void main() { char c; cout Enter first sentence followed by Enter\n ; while ( (c = cin.get()) != \n )cout.put(c); cout endl ; cout Enter second sentence followed by Enter\n ; while ( cin.get(c) ) { if ( c==\n ) break; cout.put(c); } cout endl ; cout Enter third sentence followed by Enter\n ; char s[ 80 ] ; cin.get ( s, 10 ) ; cout s endl ; } 【例9.2】用get

文档评论(0)

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

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

1亿VIP精品文档

相关文档