C++输入输出流操作控制

上传人:沈*** 文档编号:243940239 上传时间:2024-10-01 格式:PPT 页数:27 大小:436KB
返回 下载 相关 举报
C++输入输出流操作控制_第1页
第1页 / 共27页
C++输入输出流操作控制_第2页
第2页 / 共27页
C++输入输出流操作控制_第3页
第3页 / 共27页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,1,第,16,章,流,操作格式控制,2,学 习 目 标,流的概念,简单的格式控制,3,流的概念,流,是C+中的重要概念,标准输入输出流(cin,cout)和输入输出文件流是常用的流,C+,中的流实际上是一个字节序列,输入操作是控制序列中的字节内容从一个设备流入内存,输出操作是控制序列中的字节内容从内存流向某个设备,这里的设备可以是键盘、显示器、打印机、磁盘等,4,除了针对数据类型的不同操作之外,流还用一些标志来表明该如何操作数据,控制输出数据的占位宽度,控制输出浮点数的精度,可以用函数,setiosflags()和resetiosflags()来改变这些标志,这些函数和操作包含在头文件iostream或iomanip中,在程序中注意用#include,包含它们,用cin、cout处理整数、浮点数、字符等不同类型的数据时,只需用同样的程序语句,这是因为流对不同数据的类型进行了不同的操作,5,控制符 作用,dec 控制输出10进制数,hex 控制输出16进制数,oct 控制输出8进制数,setfill(c)c为填充字符,setprecision(n)设制n位小数显示精度,setw(n)设置n个字符的显示宽度,setiosflags(ios:fixed)固定浮点显示小数,setiosflags(ios:scientific)用指数方式显示小数,setiosflags(ios:left)左对齐显示,setiosflags(ios:right)右对齐显示,setiosflags(ios:skipws)忽略前导空白,setiosflags(ios:uppercase)16进制数用大写字母输出,setiosflags(ios:lowercase)16进制数用小写字母输出,6,输出流格式控制,控制输出宽度,为了调整输出,可以通过在流中放入,setw操纵符或调用width,成员函数为每个项指定输出宽度。,7,例 使用,width,函数控制输出宽度,#include,using namespace std;,int main(),int i;,double values =1.23,35.36,653.7,4358.24;,for(i=0;i4;i+),cout.width(10);/,设置10个字符的输出宽度,cout valuesi endl;,/cout“0123456789”endl;,return 0;,8,输出结果是:,在一列中以至少10个字符宽,按右对齐方式输出,在少于10个字符宽的数值前加入空格,9,空格,是默认的填充符:当输出的数据不能充满指定的宽度时,系统会自动以空格填充,编程人员可以使用,fill,成员函数为已经指定宽度的项设置自己需要的填充符,若以,“,*,”,为填充符,则前面的例子可以修改为如下,10,#include,using namespace std;,int main(),double values =1.23,35.36,653.7,4358.24;,for,(,int,i=0;i4;i+),/,设置输出宽度为10,cout.width(10);,/,设置输出填充符为*,cout.fill(*);,cout valuesi endl;,return 0;,11,输出结果是:,若想为同一行中输出的不同数据项分别指定宽度,可以使用,setw操纵,符,如下:,12,例 使用,setw,操纵符指定宽度,#include,#include /为使用setw操纵符必须加入的库函数,using namespace std;,int main(),double values =1.23,35.36,653.7,4358.24;,char*names =Zoot,Jimmy,Al,Stan;,for,(,int,i=0;i4;i+),cout setw(6)namesi setw(10)valuesi endl;,return 0;操纵 操纵,13,输出结果是:,setw和width都不截断数值,如果数值超过了指定宽度,则显示全部值(遵守精度设置),setw和width仅影响紧随其后的项,在一项输出完后,宽度恢复成默认,值,14,例 设置对齐方式,输出数据时默认的方式是右对齐,可以设置标志使输出按照其他对齐方式,使用带参数的函数setiosflags()和resetiosflags()来实现所需要的方式,setiosflags()不同于setw和width,它的影响是持久的,直到用resetiosflags()重新恢复默认值为止,为了使前面的例子实现:姓名左对齐、数值右对齐,我们修改如下:,15,#include,#include,using namespace std;,int main(),double values =1.23,35.36,653.7,4358.24;,char*names =Zoot,Jimmy,Al,Stan;,for,(int,i=0;i4;i+),cout,setiosflags(ios:left),/,设置左对齐,setw(6)namesi,resetiosflags(ios:left),/,去掉,左对齐,setw(10)valuesi,endl;,return 0;,16,输出结果是:,17,例 控制输出精度,浮点数输出精度的默认值是6:如数3466.9768显示为3466.98,为了改变精度,可以使用setprecision操纵符及2个标志:ios:fixed 和 ios:scientific,若设置ios:fixed,输出为:3466.976800,若设置ios:scientific,输出为:3.466977e+003,若设置了ios:fixed 或 ios:scientific,则精度值确定了小数点之后的小数位数;若都未设置,则精度值确定了总的有效位,可以用resetiosflags()清除这些标志,18,#include,#include,using namespace std;,int main(),double values =1.23,35.36,653.7,4358.24;,char*names =Zoot,Jimmy,Al,Stan;,/cout setiosflags(ios:scientific);,for,(,int,i=0;i4;i+),cout,setiosflags(ios:left),/,设置左对齐,setw(6)namesi,resetiosflags(ios:left)/,去掉左对齐,setw(10),setprecision(1),valuesi,endl;,return 0;,19,输出结果是:,/cout setiosflags(ios:scientific);,cout setiosflags(ios:scientific);,20,输出字符图形,21,#include,#include,using namespace std;,int main(),for(int i=0;i10;i+)couti;,0123456789,coutendl;,*,for(int x=1;x=10;x+),*,coutsetfill(*)/填充*,*,setw(x)/设置输出宽度x,*,*“,*,endl;,*,return 0;,*,*,/宽度随 x 的增大而增加,*,*,22,#include,#include,using namespace std;,int main(),for(int i=0;i10;i+)couti;0123456789,coutendl;*,for(int x=1;x=10;x+)*,coutsetfill(*),/填充*,*,setw(x),/设置输出宽度x,*,*“*,endl;*,return 0;*,*,/宽度随 x 的增大而增加,*,*,23,输出图形,#include,#include,using namespace std;,int main(),for(int i=0;i10;i+)couti;/,0123456789,coutendl;/,*,for(int x=1;x=9;x+)/,*,coutsetfill()/,*,setw(10-x)/,*,“”/,*,setfill(*)/,*,setw(x)/,*,“*”/,*,endl;/,*,cout“*”endl;/,*,return 0;,24,输出图形,#include,#include,using namespace std;,int main(),for(int i=0;i10;i+)couti;/0123456789,coutendl;/*,for(int x=1;x=9;x+)/*,coutsetfill()/*,setw(10-x)/*,“”/*,setfill(*)/*,setw(x)/*,“*”/*,endl;/*,cout“*”endl;/*,return 0;,25,#include,#include,using namespace std;,int main(),for(int i=0;i=9;i+)couti;,0123456789,coutendl;,*,for(int x=1;x=5;x+),*,coutsetfill(),*,setw(x),*,“”,*,setfill(*),setw(11-2*x),“*”,endl;,return 0;,26,#include,#include,using namespace std;,int main(),for(int i=0;i=9;i+)couti;0123456789,coutendl;*,for(int x=1;x=5;x+)*,coutsetfill()*,setw(x)*,“”*,setfill(*),setw(11-2*x),“*”,endl;,return 0;,27,结 束,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!