- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章C的流类库
第6章 C++的I/O流类库 ? 知识点 C++为什么要建立自己的输入输出系统 输出流 输入流 格式控制 ? 难点 格式控制 ? 要求 掌握: 输出流 输入流 了解: 格式控制 6.1 C++为什么要建立自己的输入输出系统 C语言的输入输出系统是一个使用灵活、功能强大的系统,那么,为什么C++还要建立自己的输入输出系统呢?这是因为在C++中需要定义众多的用户自定义类型,面向对象方法的数据封装性就是通过用户所定义的类类型来体现的,而继承性和多态性是通过用户定义的类对象的操作来体现的。 但C语言的输入输出系统不支持用户自定义的对象。因而C++必须建立一个可扩展的输入输出系统,可以通过它解决用户自定义类型的输入输出操作。 6.2 输入输出流 C++语言提供了输入输出流机制,流简单方便,具有完整性,有效性和灵活性等特点。 流是从源(source,或者产生者)到失(sink,或者消费者)的数据流的抽象引用。从源输入字符称为提取(extracting);把字符输出称为插入(inserting)。 流操作通过iostrean类库中提供的流类来完成,它们的定义在头文件iostrean.h中,任何使用流的程序必须包含该头文件。C++标准定义了多个与流相关的类,不同编译器实现对类的层次结构可能不尽相同。大部分类在程序中不会直接使用。 6.3 输出流 流的输出用插入运算符实现,其左操作数为输出流类Ostream的对象。Ostream已经定义了对C++内部数据类型的输出方法。 在前面章节的例子中,遇到的cout是系统预定义的标准输出流对象,它对应于C语言中的stdout。另外,C++还定义了标准出错流cerr,对应C语言中的stderr,用于在标准出错设备上输出。cerr与cout可以在标准输出设备(通常为显示器)上输出。请看下面的例子: # include iostream.h void main ( ) { int i = 5; cout “Hello!\n”; cout i; } 该程序在标准输出设备上输出字符串常量“Hello! \n?”和整型变量i,如果使用C语言的输入输出库函数,输出语句可以改为: printf(Hello!\n); printf(“%d”,i); 读者可能会注意到,在使用cout流输出整型变量i时,并没有指定输出格式,这里实际上是C++语言中的重载机制在起作用。编译器根据右操作数的数据类型来选择定义的输出方式。这也正是使用流的一个优点,假如程序中有100个地方需要输出变量i,而有一天你想将变量i改为浮点类型的数据,那么如果使用C语言的输入输出函数库,你必须找到这100个位置并改变输出的格式;而使用流操作只需改变变量定义后,重新编译就可以了。 插入运算表达式的值仍然为输出流对象,上面例子中的两行输出语句可以连写为: cout“Hello!\n” i; 插入运算符可以重载,由用户定义如何输出自定义的类对象。在重载插入运算符时应将其重载为类的友元,而不是成员。对于任何给定的用户定义类型T,定义一个operator函数用于输出T类型的对象。函数原型为: osteam operator (ostream , T ); 如果要访问类对象的私有部分,应在类的声明中将其声明为该类的友元函数。下面是对一个Point类重载插入运算符的例子。 // 类声明 #include iostream.h class Point{ int x,y; public: Point (int x,int y) {Point :: x = x; Point :: y = y;} Point operator + (Point p) {return Point (x + p. x, y + p. y);} Point operator - (Point p) {return Point (x - p. x, y - p. y);} friend ostream operator (ostream ,Point ); }; // 重载运算符 ostream operator (ostream out,Point pt) { out ( pt.x , pt.y ); return out; } 重载运算符的返回值类型为ostream ,在实现时返回输出流参数本身。重载运算符后,可以象输出C++内部类型对象那样使用 来输出Point类型的对象了。假设P是一个Point类型对象,其X和Y成负的值为10和20,则下面的语句: cout P; 将在标准输出设备输出如下的内容: (10,20) 使用该类的用户无须记忆类输出函数名,只需使用标准的流插入运算符即可以完成对象的输出。 6.4 输入流 流
您可能关注的文档
- 第八章 常用油品.pptx
- 第八章 地理信息系统产品输出与空间数据可视化.ppt
- 第八章 文艺的社会文化心理.ppt
- 第八章 服务器技术.ppt
- 第八章 服装分销渠道策略.ppt
- 第八章 机械制造技术资源-马国亮主编.ppt
- 第八章 机械设计基础 -任成高.ppt
- 第八章 案例学习的成果总结与考核.ppt
- 第八章 物业管理法.ppt
- 第八章 气体和蒸汽的流动-new.ppt
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)