Setiosflags的用法
ios::fixed
是操作符setiosflags的参数之一,该参数是指定的动作以带小数点的形式表示浮点数,并且在允许的精度范围内尽可能的把数字移向小数点右侧;
ios::right ios::left
在指定区域内向右移,向左移
cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(2)
和在一起的意思就是输出一个右对齐的小数点后两位的浮点数(而且是长期有效)【更奇怪的是有right或者是left更或者是没有对输出结果没有影响】
使用setprecision(n)可以控制输出流显示浮点数的数字个数,c++中默认的流输出数值有效位是6。
如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的位数。
谁在前谁在后都无所谓
由上面两张图可以看出区别
cout.setf( ) cout.precision( )
这两个就是格式控制~ostream成员函数里面的,其中cout.setf与setiosflags一样,cout.precision与setprecision一样。
include
常见的控制函数
dec 置基数为10 相当于%d
hex置基数为16 相当于%x
oct置基数为8 相当于%o
setfill(c)设填充字符为c
setiosflags(ios::fixed)固定的浮点显示
setiosflags(ios::scientific)指数显示
setiosflags(ios::left)左对齐
setiosflags(ios::right)右对齐
setiosflags(ios::skipws)忽略前导空白
setiosflags(ios::uppercase)16进制大写输出
setiosflags(ios::lowercase)16进制小写输出
setiosflags(ios::showpoint)强制显示小数点(比如4.0此时输出4.0,否则输出4)
setiosflags(ios::showpos)强制显示符号(比如数制的前导+,-)
setw(n)
预设宽度
如
cout<<setw(5)<<225;
结果是(空格)(空格)225;
setfill(char c)
在预设宽度中讲没有用完的宽度大小用c进行填充
如
cout<<setfill('*')<<setw(5)<<225;
结果就是**225;
但是应该注意setfill与setw只作用于紧随其后的部分。
setbase(int n)
将数字转换为n进制