C面向对象程序第13章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
整理ppt
7
【例13-1】读入一个整型数据和一个双精度数据并输出
• #include "stdafx.h" • #include "stdio.h" • #include "iostream.h" • void main() •{ • int i; • double d; • cin>>i; • cin>>d; • cout<<i<<","<<d<<endl; • getchar(); •}
整理ppt
9
【例13-2】Point类重载插入运算符示例
• #include "stdafx.h"
• #include "stdio.h"
• #include "iostream.h"
• class point
•{
•
int x,y;
• public:
•
point(int x,int y)
•
{
•
point::x=x;
• width成员函数与fill成员函数均在头文件 iostream.h中说明,因此要使用这两个函数,必 须在程序中包含iostream.h头文件。而预定义格 式控制函数setw在头文件iomanip.h中说明,要使 用setw必须在程序中包含iomanip.h头文件。
整理ppt
14
【例13-3】使用width成员函数控制输出宽度
整理ppt
4
C++语言在开始使用流类时,就预定义了如下4个常 用的输入/输出流对象
• cin:是istream类的对象,用于处理键盘输入。 • cout:是ostream类的对象,用于处理屏幕输出。 • cerr:是ostream类的对象。用于处理出错信息,
并直接输出。 • clog:是ostream类的对象,用于处理出错信息,
{
•
in>>pt.x;
•
in>>ch;
•
in>>pt.y;
•
in>>ch;
•
}
• return in;
•}
整理ppt
12
13.1.3流的格式控制
(1)格式控制成员函数 • ios类定义的格式控制成员函数必须作为流对象(如:
cout、cin)的成员函数来使用,因此其调用格式为: • <流对象>.<格式控制成员函数>(<实参>);
•
point::y=y;
•
}
•
point operator +(point p)
•
{
•
return point (x+p.x,y+p.y);
•
} //接下页
整理ppt
10
• point operator -(point p)
•
{
•
return point (x-p.x,y-p.y);
•
}
friend istream &operator >>(istream &in,point &pt);
• #include "stdafx.h"
• #include "stdio.h"
• #include "iostream.h"
• void main()
•{
•
float a[]={11, 22.2, 33.33, 44.444, 55.5555};
整理ppt
8
程序执行后输出结果如下
• 3 5.6<Enter> • 3,5.6
• 提取运算表达式的值自然为输入流对象,上面例 子中的两行输出语句可以连写为c>>i>>d;
• 提取运算符可以重载,由用户定义如何输入自定 义的类对象。在重载提取运算符时,同时应将其 重载为类的友元,而不是成员。对于任何给定的 用户定义类型T,定义一个operator函数,用于从 指定的输入流读取T类型的对象。
整理ppt
6
2.输入流
• 流的输入采用提取运算符“>>”来实现,其左操 作数为输入流类istream的对象。
• istream已经预定义了对C++内部数据类型的输入 方法。
• C++中预定义了一个标准输入流对象cin,它对应 于C语言中的stdin,用于从标准输入设备(通常为 键盘)读入数据。下面的例子从标准输入设备读入 整型数据和双精度数据,然后输出。
(2)预定义格式控制函数。C++直接提供的预定义格式 控制函数为普通函数。因此其调用格式为:
• <预定义格式控制函数>(<实参>):
整理ppt
13
1.流的输出格式控制
(1)输出宽度及填充字符。输出宽度可通过输出格式控 制成员函数width(n)、填充成员函数fill(c)与预定义 格式控制函数setw(n)实现。其中n为输出数据的宽 度,c为填充字符。
C++ 面对对象程序设计
授课老师:
整理ppt
1
第13章输入/输出流类库与文件操作
• 本章要点 • 13.1 流类体系 • 13.2 文件操作
整理ppt
2
本章要点
• I/O流、流类与流类体系的概念 • 流的输入输出控制格式 • 文件的概念及文件的使用 • 文件流类体系结构 • 文本文件与二进制文件的使用
整理ppt
3
13.1.1流(stream)
• 流(stream)是一种抽象。它负责在数据的生产者和 数据的消费者之间建立联系,并负责管理数据的 流动。在C++程序中,数据可从键盘流入程序中, 也可以从程序流向屏幕或磁盘文件。C++的流类 主要是以两个类为基础的;ios类和streambuf类, 由ios类和streambuf类所派生出来的类各自负责 不同的工作。ios类及其派生类用于处理与输入、 输出有关的操作,例如读写文件、键盘输入和屏 幕输出等。
friend ostream &operator >>(ostream &,point &);
• };
• istream &operator >>(istream &in,point &pt)
பைடு நூலகம்
• // 接下页
整理ppt
11
•{
• char ch;
• in>>ch;
• if (ch == 'c')
•
并使用缓冲区输出。
整理ppt
5
13.1.2输入/输出流
1.输出流 • cout是ostream类的对象,因为它所指向的是标
准输出设备(显示器屏幕),所以它在iostream头文 件中作为全局对象进行定义。 • cout对象定义格式如下: • ostream cout(stdout); • cout默认指向的C++中的标准设备名,作为其构 造函数的参数使用。 • 在iostream.h头文件中,ostream类对应每个基 本数据类型都有其友元函数对左移操作符进行了 友元函数的重载。