第11章 流类库与输入输出.ppt
上传人:yy****24 上传时间:2024-09-09 格式:PPT 页数:75 大小:4.4MB 金币:12 举报 版权申诉
预览加载中,请您耐心等待几秒...

第11章 流类库与输入输出.ppt

第11章流类库与输入输出.ppt

预览

免费试读已结束,剩余 65 页请下载文档后查看

12 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第11章流类库与输入输出本章主要内容11.1C++的输入和输出11.1.2C++的I/O对C的发展2)不可扩展性C++的I/O操作是可扩展的。不仅可以用来输入输出标准类型的数据,也可以用于用户自定义类型的数据。C++对标准类型的数据和对用户声明类型数据的输入输出,采用同样的方法处理。11.1.3C++的输入输出流1.iostream类库中有关的类2.与iostream类库有关的头文件3.在iostream头文件中定义的流对象4.在iostream头文件中重载运算符11.2标准输出流(3)cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl时,不论缓冲区是否已满,都立即输出流中所有数据,然后插入一个换行符,并刷新流(清空缓冲区)。(1)cerr流对象是标准错误流。cerr流已被指定为与显示器关联。#include<iostream>#include<cmath>usingnamespacestd;intmain(){floata,b,c,disc;cout<<"pleaseinputa,b,c:";cin>>a>>b>>cif(a==0)cerr<<"aisequaltozero,error!"<<endl;//将有关出错信息插入cerr流,在屏幕输出elseif((disc=b*b-4*a*c)<0)cerr<<"disc=b*b-4*a*c<0"<<endl;//将有关出错信息插入cerr流,在屏幕输出else{cout<<"x1="<<(-b+sqrt(disc))/(2*a)<<endl;cout<<"x2="<<(-b-sqrt(disc))/(2*a)<<endl;}return0;}#include<iostream>#include<cmath>usingnamespacestd;intmain(){floata,b,c,disc;//cout<<"pleaseinputa,b,c:";while(cin>>a>>b>>c){if(a==0)cerr<<"aisequaltozero,error!"<<endl;//将有关出错信息插入cerr流,在屏幕输出elseif((disc=b*b-4*a*c)<0)cerr<<"disc=b*b-4*a*c<0"<<endl;//将有关出错信息插入cerr流,在屏幕输出else{cout<<"x1="<<(-b+sqrt(disc))/(2*a)<<endl;cout<<"x2="<<(-b-sqrt(disc))/(2*a)<<endl;}}return0;}#include<stdio.h>#include<math.h>intmain(){floata,b,c,disc;while(EOF!=scanf("%f%f%f",&a,&b,&c)){if(a==0)printf("aisequaltozero,error!\n");//将有关出错信息在屏幕输出elseif((disc=b*b-4*a*c)<0)printf("disc=b*b-4*a*c<0\n");//将有关出错信息在屏幕输出else{printf("x1=%f\n",(-b+sqrt(disc))/(2*a));printf("x2=%f\n",(-b-sqrt(disc))/(2*a));}}return0;}(1)它的作用和cerr相同,都是在终端显示器上显示出错信息。区别:cerr是不经过缓冲区,直接向显示器上输出有关信息,而clog中的信息存放在缓冲区中,缓冲区满后或遇endl时向显示器输出。11.2.2格式输出1.使用控制符控制输出格式控制符含义输入/输出dec设置转换基数为十进制I/Ohex设置转换基数为十六进制I/Ooct设置转换基数为八进制I/Osetbase(intn)设置转换基数为nI/On=0,8,10,16;0为缺省基数setfill(intc)设置填充字符Osetprecision(intn)设置浮点输出的有效数字个数I/Osetw(intn)设置域宽Oends插入一个空字符Oendl插入一个新行符并刷新流Oflush刷新流Osetiosflags(longf)设置特定的标志位I/O