1.流格式控制符定义在<iomanip>头文件中,
setw(n)                                            指定打印字段的宽度
setprecision(n)                              设置一个浮点数的精度
fixed                                                将一个浮点数以一个定点数的形式输出
showpoint                                      将一个浮点数以带小数,带结尾是0的形式输出,即便他没有小数部分
left                                                    将输出内容左对齐
right                                                将输出内容右对齐
一。setw(n)
默认情况下,输出内容需要多少个位置,cout就仅仅占用那么多屏幕位置。你可以使用setw(n),指定一个输出内容占用多少个位置。
例如:
cout<<setw(8)<<"C++"<<setw(6)<<"101"<<endl;
这样c++之前打印5个空位置,(注意:是之前),,101之前打印3个空位置。
setw(n)每次只作用一个输出字段,所以,要想每个字段输出都设置宽度,必须每次都要写一遍setw(n)
二。setprecision(n)
setprecision(n)指定一个浮点数的精度。
1.)可以指定一个浮点数打印几位数字,其中n是总位数!!包括小数之前和之后的数字。超出的位数会被四舍五入进去
(setprecision(n)不是舍弃,在高精度向低精度转换时,超出部分会被舍弃,如一个double k =1.5,int i = k ,这时候0.5被舍去,i  = 1,
高精度向低精度转换超出位数会被舍弃!)
例如
doublenum = 1.23456;
cout<<setprecision(2)<<num<<endl;  ---- 输出1.2
cout<<setprecision(4)<<num<<endl;  ---- 输出1.235
cout<<setprecision(5)<<num<<endl;  ---- 输出1.22346
2)与setw()不同setprecision(n)一直作用到下一个setprecisin(n)之前,所以,只需要写一个setprecision(n)就可以。setw()要每次都写
C++四舍五入用
三。fixed
fixed可以强制数值不以科学技术法显示,即只用小数形式显示。
(在遇见大的浮点数时候,计算机会以科学技术法形式显示浮点数)
默认情况下,使用fixed之后,小数点后面数字位数为6,
如:doublei  = 1.23;
cout<<fixed<<i<<endl;
会输出1.230000
3)我们可以使用fixed和setprecision(n)一起使用的方法,来改变这个小数点后的位数,当setprecision(n)作用于fixed之后时候,
setprecision(n)指定的是小数点后的数字位数
如:double k = 3.141592653;
cout<<fixed<<setprecision(2)<<k<<endl;
输出:3.14
这时候,后面也会四舍五入,,即只要用了setprecision(n)就会四舍五入
4)一旦使用了fixed之后,它会作用于后面所有的浮点数.
5)注意,默认情况下,没有小数的部分不会显示小数点。但使用fixed之后,会强制显示小数点。
如double i= 1;
cout<<fixed<<i<<endl;
显示  1.000000
四。showpoint(与setprecision(n)一起使用)
showpoint强制小数后面以0显示。
cout<<setprecision(6);
cout<<showpoint<<1.23<<endl; ----显示1.23000
cout<<showpoint<<123.0<<endl; ----显示123.000
五。right /left  对齐方式
大多数系统默认情况下为右对齐,
可以使用;eft ,将输出格式左对齐
用法
cout<<left;
cout<<setw(8)<<1.23<<endl;
输出printf用什么格式
cout<<setw(8)<<1.23456<<endl;
C++输出格式控制
setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6,所以不管数据是多少,都只输出六位。如果setprecision(n)与setiosflags(ios::fixed)
或者setiosflags(ios_base::fixed)合用,可以控制小数点右边的数字个数。setiosflags (ios::fixed)是用定点方式表示实数。如果与setiosnags(ios::scientific)合用,可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。
I/O流常用控制符:
使用控制符时,在程序开头加投文件#include <iomanip> C++有两种方法控制格式输出:1、用格式控制符;2、用流对象的成员函数格式控制符:
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进制小写输出
成员函数:
flags(10)                          设置基数为10
flags(16)                          设置基数为16
flags(8)                            设置基数为8
flags(c)                            设置填充字符c
precision(n)                        设置显示小数精度为n位
width(n)                            设置域宽为n个字符
在新版本的c++中头文件已经用iomanip取代了iomanip.h。
以下是一些常用的函数:
dec置基数为10 相当于"%d"
hex 置基数为16 相当于"%X"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。