- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第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
您可能关注的文档
- C++面向对象程序设计 曹静 教学课件 第01章 面向对象程序设计概述.pdf
- C++面向对象程序设计 曹静 教学课件 第02章 C++语言基础.pdf
- C++面向对象程序设计 曹静 教学课件 第04章 类与对象.pdf
- C++面向对象程序设计 曹静 教学课件 第10章 项目设计——校园信息管理系统.pdf
- C++面向对象程序设计 教学课件 陈维兴 陈昕 C++邮电 2.pdf
- C++面向对象程序设计 教学课件 陈维兴 陈昕 C++邮电 3.pdf
- C++面向对象程序设计 教学课件 陈维兴 陈昕 C++邮电 4.pdf
- C++面向对象程序设计 教学课件 陈维兴 陈昕 C++邮电 5.pdf
- C++面向对象程序设计 教学课件 李兰_ 第2章.pdf
- C++面向对象程序设计 教学课件 李兰_ 第3章.pdf
- C++语言程序设计 教学课件 尹季昆 主编 第四章 多态性.pdf
- C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 吕凤翥 王树彬_ 第1章 C++语言概述.pdf
- C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 吕凤翥 王树彬_ 第2章 变量和表达式及数组.pdf
- C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 吕凤翥 王树彬_ 第3章 语句和预处理.pdf
- C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 吕凤翥 王树彬_ 第4章 指针和引用.pdf
- C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 吕凤翥 王树彬_ 第5章 函数.pdf
- C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 吕凤翥 王树彬_ 第6章 类和对象(一).pdf
- C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 吕凤翥 王树彬_ 第7章 类和对象(二).pdf
- C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 吕凤翥 王树彬_ 第8章 继承性和派生类.pdf
- C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 吕凤翥 王树彬_ 第9章 多态性和虚函数.pdf
文档评论(0)