面向对象技术与C++第七章.ppt

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

C++的I/O流类库 输入输出的目标 从键盘读入数据 在屏幕上显示数据 将数据保存在文件中 从文件中取出数据 内容 C++的流及流类库 输入输出的格式控制 用户自定义类型的输入输出 文件的输入输出 C++的流及流类库 C++系统提供了一个用于输入输出(I/O)操作的类体系,该类体系提供了对预定义类型进行输入输出操作的能力,允许C++建立一个可扩展的输入输出系统。从而,利用该系统进行用户自定义类型的输入输出操作。 在C++中,输入输出操作是由“流”来处理的。 所谓流是指数据从一个位置流向另一个位置。流具有方向性:与输入设备相联系的流称为输入流;与输出设备相联系的流称为输出流;与输入输出设备相联系的流称为输入输出流。 C++预定义的4个流类对象 C++中包含了四个预定义的流类对象 标准输入流cin 标准输入设备,默认键盘 标准输出流cout 标准输出设备,默认显示器 非缓冲型的标准出错流cerr 标准错误输出设备,显示器(非缓冲方式) 缓冲型的标准出错流clog 标准错误输出设备,显示器(缓冲方式) cerr与clog的区别 cerr是非缓冲式的,发送给它的任何内容都立即输出 clog是缓冲式的,只有当缓冲区满时才进行输出,也可通过刷新流的方式强迫刷新缓冲区 主张使用cerr,因为有时缓冲区的使用会抑制错误信息的显示。 流类库 C++流类库是用继承方法建立起来的输入输出类库,他具有两个平行的基类,如图示: istream:提供向流类插入数据(输入)的操作; ostream:提供从流中提取数据(输出)的有关操作; Iostream:综合了istream类和ostream类的行为。 streambuf类是一个抽象类,是为ios类及派生类提供对数据的缓冲支持。 流类库 streambuf类 streambuf类是一个抽象类,也被称为缓冲区类。 预定义类型的输入输出 无格式输入输出 使用两个流对象cin和cout,以及两个运算符“”和“”实现输入输出。其一般格式: cin变量; //输入 cout变量或常量; //输出 它们被解释为: cin.operator(变量); cout.operator(变量或常量); 因此,“”和“ ”运算符可以重载。 预定义类型的输入输出 例如: int x; float y; cinxy; 输入:23 12.56 char *str; cinstr; 输入:Object_Oriented programming 则结果是:str=“Object_Oriented”,后面的字符被忽略。 输入输出的格式控制 通过调用cin、cout等对象的成员函数进行格式标志位的设置见p249 表7.1 通过使用操纵符(即操作子)进行格式的控制,这种方式可以直接使用在和中 要使用操纵符则必须包含头文件“iomanip.h” 用户可以自定义操纵符,并将其使用在和流操作中 输入输出的格式控制 C++提供的常用的预定义操纵符: 1、dec、hex、oct 以十进制、十六进制、八进制形式输入输出整型数; 2、endl 插入一个换行符,并刷新输出流,仅用于输出; 3、ws 用于在输入时跳过开头的空白符,仅用于输入; 4、setw(int n)设置域宽为n,用于输入输出; 5、setprecision(int n)设置小数部分位数,用于输入输出; 6、setfill(int c)设置c为填充字符,默认为空格。 预定义操纵符输入输出 例7.4 #include iostream.h #include iomanip.h main() { coutsetw(10)123567endl; cout 123 setiosflags(ios::scientific)setw(20) 123.456789endl; cout 123 setw(10)hex123endl; cout 123 setw(10)oct123endl; cout setiosflags(ios::left)setfill(‘$’)setw(8)123endl; return 0; } 用户自定义类型的输入输出 用户自定义的类类型数据的输入输出用重载“”和“”来实现。 重载输出运算符,一般格式如下: ostream operator(ostream out,class_name obj) { outobj.item1; outobj.item2; …… outobj.itemn; return out; } 用户自定义类型的输入输出 重载输入运算符(又称提取运算符) 一般格式如下: istream opera

文档评论(0)

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

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

1亿VIP精品文档

相关文档