1、第七章输入输出流b 第7章 输入输出流7.1 C+的输入和输出 编译系统已经以运算符或函数的形式做好了对标准外设(键盘、屏幕、打印机、文件)的接口,使用时只需按照要求的格式调用即可。 cinx; coutx; cin.get(ch);输入输出流(I/O Stream)C+语言的I/O系统向用户提供一个统一的接口,使得程序的设计尽量与所访问的具体设备无关,在用户与设备之间提供了一个抽象的界面:输入输出流。 在“iostream.h”中说明 ios istream(输入流) ostream(输出流) iostream 用标准流进行输入/输出时,系统自动地完成数据类型的转换。对于输入流,要将输入的字
2、符序列形式的数据变换成计算机内部形式的数据(二进制或ASCII)后,再赋给变量,变换后的格式由变量的类型确定。对于输出流,将要输出的数据变换成字符串形式后,送到输出流(文件)中。 重载输入(提取)和输出(插入)运算符#include class A float x, y;public: A(float a=0, float b=0) x=a; y=b; void Set(float a, float b) x=a; y=b; void Show(void) coutxtyendl; ;void main(void) A a(2,3); a.Set(20 , 30); a.Show( ); 在C
3、+中允许用户重载运算符“”,实现对象的输入和输出。重载这二个运算符时,在对象所在的类中,将重载这二个运算符的函数说明该类的友元函数。重载提取运算符的一般格式为:友元函数: friend istream & operater (istream &, ClassName &); 返回值类型 函数名 左操作数 右操作数返回值类型:类istream的引用,cin中可以连续使用运算符“”。 cinab;第一个参数:是“”的左操作数cin类型,类istream的引用第二个参数:是“”的右操作数,即欲输入的对象的引用.#include class incount int c1,c2;public:incou
4、nt(int a=0,int b=0) c1=a; c2=b; void show(void)coutc1=c1tc2=c2(istream &,incount &); /重载输入函数原型说明;istream & operator(istream &is, incount &cc) /重载输入函数定义 iscc.c1cc.c2; return is; void main(void) incount x1,x2; x1.show (); x2.show (); cinx1; /operator(cin, x1) cinx2; /operator(cin, x2) x1.show (); x2.s
5、how ();重载输出(插入)运算符的一般格式为:友元函数: friend istream & operater (istream &, ClassName &); 返回值类型 函数名 左操作数 右操作数返回值类型:类istream的引用,cout中可以连续使用运算符“”。 coutab;第一个参数:是“”的左操作数cin类型,类istream的引用第二个参数:是“”的右操作数,即欲输入的对象的引用.#include class incount int c1,c2;public: incount(int a=0,int b=0) c1=a; c2=b; void show(void) cout
6、c1=c1tc2=c2(istream &,incount &); friend ostream & operator(istream &is,incount &cc) iscc.c1cc.c2; return is;ostream &operator(ostream &os,incount &cc) /重载输出函数定义osc1=cc.c1tc2=cc.c2endl; return os;void main(void) incount x1,x2; coutx1x1; /调用输入函数 cinx2; coutx1c, b+ca, c+ab编写程序,输入a,b,c,检查a,b,c是否满足以上条件,
7、如不满足,由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