C++输出格式

C++输出格式ios

C++中默认输出有效位数是6位,即c++

则输出:函数

221.11
1.11011
199967 //6位有效数字,自动截取保存六位
1.99967e+006 //六位以上且没法省略显示将会变为指数显示spa

那么若是须要显示多位,能够经过调整输出格式,那么设置c++输出格式,主要有两种办法:对象

一、在输入流与输出流中使用控制符

二、用流对象的成员函数控制输出格式

两者有什么区别,用法上呢,第一种就是使用控制符设置输出显示,例如:blog

cout<<setw(10)<<a<<endl;//设置了输出的宽度为10,多余默认用空格补齐ci

而第二种,经过调用流对象cout中用于控制输出格式的成员函数来控制输出格式,例如:io

cout.width(10)//设置了输出的宽度为10,一样的多余的默认用空格补齐function

而值得一提的是,从影响范围上看,笔者原觉得第二种调用成员函数将改变全局设置,可是实际上两者都只能影响下一次的输出格式,例,使用控制符:class

输出为:

1
  1
1

而,调用输出流对象的成员函数:

输出为:

1
  1
1
1

再来具体看看两种办法的一些用法

一、在输入流与输出流中使用控制符

1)设置宽度setw(n),n即为输出固定宽度,默认以空格填充,若是加上setfill('0')即以‘0’为填充,‘’内可改成其余字符,例如:

 输出:

0000000001
*********1

2)设置有效位数setprecision(n),n即为设置位数,例如:

输出:

221.116  //默认六位
221.1161101 //经过设置十位

3)设置小数点后位数,先经过setiosflags(ios::fixed)设置固定小数点的位数,再经过setprecision(n),设置小数点后固定保留n位数

例如:

输出:

221.116    //默认六位
1.100000  //固定6位,空位自动补零
221.116110 //固定六位,后位四舍五入
221.11611012

4)设置为指数形式输出,setiosflags(ios::scientific),同上面设置小数后位数同样,与setprecision连用设置,不经常使用,不做例证

5)按进制输出,dec为十进制,hex为16进制,而也能够经过setbase(n),直接设置n进制,例如:

输出:

11111
11111
2b67
25547
2b67

二、用流对象的成员函数控制输出格式

用途相似上述,用法稍加改变,相似上文讲解两者区别时的用法;

流成员函数setf和控制符setiosflags括号中的参数表示格式状态,它是经过格式标志来指定的。格式标志在类ios中被定义为枚举值。所以在引用这些格式标志时要在前面加上类名ios和域运算符“::”。格式标志见表13.5。

相关文章
相关标签/搜索