第七章输入输出流b.docx

上传人:b****5 文档编号:8196863 上传时间:2023-01-29 格式:DOCX 页数:10 大小:319.81KB
下载 相关 举报
第七章输入输出流b.docx_第1页
第1页 / 共10页
第七章输入输出流b.docx_第2页
第2页 / 共10页
第七章输入输出流b.docx_第3页
第3页 / 共10页
第七章输入输出流b.docx_第4页
第4页 / 共10页
第七章输入输出流b.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

第七章输入输出流b.docx

《第七章输入输出流b.docx》由会员分享,可在线阅读,更多相关《第七章输入输出流b.docx(10页珍藏版)》请在冰豆网上搜索。

第七章输入输出流b.docx

第七章输入输出流b

第7章输入输出流

7.1C++的输入和输出

编译系统已经以运算符或函数的形式做好了对标准外设(键盘、屏幕、打印机、文件)的接口,使用时只需按照要求的格式调用即可。

cin>>x;cout<

cin.get(ch);

 

输入输出流(I/OStream)

C++语言的I/O系统向用户提供一个统一的接口,使得程序的设计尽量与所访问的具体设备无关,在用户与设备之间提供了一个抽象的界面:

输入输出流。

在“iostream.h”中说明

 

ios

 

istream(输入流)

ostream(输出流)

 

iostream

 

用标准流进行输入/输出时,系统自动地完成数据类型的转换。

对于输入流,要将输入的字符序列形式的数据变换成计算机内部形式的数据(二进制或ASCII)后,再赋给变量,变换后的格式由变量的类型确定。

对于输出流,将要输出的数据变换成字符串形式后,送到输出流(文件)中。

 

重载输入(提取)和输出(插入)运算符

#include

classA

{floatx,y;

public:

A(floata=0,floatb=0){x=a;y=b;}

voidSet(floata,floatb){x=a;y=b;}

voidShow(void){cout<

};

voidmain(void)

{Aa(2,3);

a.Set(20,30);

a.Show();

}

 

在C++中允许用户重载运算符“<<”和“>>”,实现对象的输入和输出。

重载这二个运算符时,在对象所在的类中,将重载这二个运算符的函数说明该类的友元函数。

 

重载提取运算符的一般格式为:

 

友元函数

friendistream&operater>>(istream&,ClassName&);

返回值类型函数名左操作数右操作数

 

返回值类型:

类istream的引用,cin中可以连续使用运算符“>>”。

cin>>a>>b;

第一个参数:

是“>>”的左操作数cin类型,类istream的引用

第二个参数:

是“>>”的右操作数,即欲输入的对象的引用.

 

#include

classincount{

intc1,c2;

public:

incount(inta=0,intb=0){c1=a;c2=b;}

voidshow(void){cout<<"c1="<

friendistream&operator>>(istream&,incount&);//重载输入函数原型说明

};

istream&operator>>(istream&is,incount&cc)//重载输入函数定义

{is>>cc.c1>>cc.c2;returnis;}

voidmain(void)

{incountx1,x2;

x1.show();

x2.show();

cin>>x1;//operator>>(cin,x1)

cin>>x2;//operator>>(cin,x2)

x1.show();

x2.show();

}

 

重载输出(插入)运算符的一般格式为:

友元函数

friendistream&operater<<(istream&,ClassName&);

返回值类型函数名左操作数右操作数

 

返回值类型:

类istream的引用,cout中可以连续使用运算符“<<”。

cout<

第一个参数:

是“<<”的左操作数cin类型,类istream的引用

第二个参数:

是“<<”的右操作数,即欲输入的对象的引用.

 

#include

classincount{

intc1,c2;

public:

incount(inta=0,intb=0){c1=a;c2=b;}

voidshow(void){cout<<"c1="<

friendistream&operator>>(istream&,incount&);

friendostream&operator<<(ostream&,incount&);//重载输出函数原型说明

};

istream&operator>>(istream&is,incount&cc)

{is>>cc.c1>>cc.c2;returnis;}

ostream&operator<<(ostream&os,incount&cc)//重载输出函数定义

{os<<"c1="<

voidmain(void)

{

incountx1,x2;

cout<

cin>>x1;//调用输入函数

cin>>x2;

cout<

}

 

7.1.1输入输出的含义

7.1.2C++的I/O对C的发展——类型安全和可扩展性

7.1.3C++的输入输出流

1.iostream类库中有关的类

图7.1

图7.2

图7.3

2.与iostream类库有关的头文件

3.在iostream头文件中定义的流对象

4.在iostream头文件中重载运算符

7.2标准输出流

7.2.1cout,cerr和clog流

1.cout流对象

2.cerr流对象

3.clog流对象

7.2.2格式输出

1.使用控制符控制输出格式

2.用流对象的成员函数控制输出格式

7.2.3用流成员函数put输出字符

7.3标准输入流

7.3.1cin流

7.3.2用于字符输入的流成员函数

1.用get函数读入一个字符

2.用成员函数getline函数读入一行字符

7.3.3istream类的其他成员函数

1.eof函数

2.peek函数

3.putback函数

图7.4

4.ignore函数

7.4文件操作与文件流

7.4.1文件的概念

图7.5

7.4.2文件流类与文件流对象

7.4.3文件的打开与关闭

1.打开磁盘文件

2.关闭磁盘文件

7.4.4对ASCII文件的操作

7.4.5对二进制文件的操作

1.用成员函数read和write读写二进制文件

2.与文件指针有关的流成员函数

3.随机访问二进制数据文件

7.5字符串流

1.建立输出字符串流对象

2.建立输入字符串流对象

3.建立输入输出字符串流对象

习题

1.输入三角形的三边a,b,c,计算三角形的面积的公式是area=[]s(s-a)(s-b)(s-c)

s=[]a+b+c[]2构成三角形的条件是:

a+b>c,b+c>a,c+a>b

编写程序,输入a,b,c,检查a,b,c是否满足以上条件,如不满足,由cerr输出有关出错信息。

2.从键盘输入一批数值,要求保留3位小数,在输出时上下行小数点对齐。

3.编程序,在显示屏上显示一个由字母B组成的三角形。

4.建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作:

(1)从键盘输入20个整数,分别存放在两个磁盘文件中(每个文件中放10个整数);

(2)从f1.dat读入10个数,然后存放到f2.dat文件原有数据的后面;

(3)从f2.dat中读入20个整数,将它们按从小到大的顺序存放到f2.dat(不保留原来的数据)。

5.编程序实现以下功能:

(1)按职工号由小到大的顺序将5个员工的数据(包括号码、姓名、年龄、工资)输出到磁盘文件中保存。

(2)从键盘输入两个员工的数据(职工号大于已有的职工号),增加到文件的末尾。

(3)输出文件中全部职工的数据。

(4)从键盘输入一个号码,从文件中查找有无此职工号,如有则显示此职工是第几个职工,以及此职工的全部数据。

如没有,就输出“无此人”。

可以反复多次查询,如果输入查找的职工号为0,就结束查询。

6.在例7.17的基础上,修改程序,将存放在c数组中的数据读入并显示出来。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1