写算法题的时候突然发现自己忘记基本的C++:cout格式化输出了,赶紧拉出以前的C++学习笔记重新看一看。
部分内容来自教程:C语言中文网(一个很棒的网站)
有时希望按照一定的格式进行输出,如按十六进制输出整数,输出浮点数时保留小数点后面两位,输出整数时按 6 个数字的宽度输出,宽度不足时左边补 0,等等。C语言中的 printf() 函数使用以%开头的格式控制符,例如 %X、%.2f、%6d 等;C++ 中的 cout 对象则使用流操作算子(你也可以叫做格式控制符)或者成员函数进行控制。
使用流操作算子
C++ 中常用的输出流操纵算子如表 1 所示,它们都是在头文件 iomanip 中定义的;要使用这些流操纵算子,必须包含该头文件。
注意:“流操纵算子”一栏中的星号*不是算子的一部分,星号表示在没有使用任何算子的情况下,就等效于使用了该算子。例如,在默认情况下,整数是用十进制形式输出的,等效于使用了 dec 算子。
流操纵算子
作 用
*dec
以十进制形式输出整数
常用
hex
以十六进制形式输出整数
|
oct
以八进制形式输出整数
|
fixed
以普通小数形式输出浮点数
|
scientific
以科学计数法形式输出浮点数
|
left
左对齐,即在宽度不足时将填充字符添加到右边
|
*right
右对齐,即在宽度不足时将填充字符添加到左边
|
setbase(b)
设置输出整数时的进制,b=8、10 或 16
|
setw(w)
指定输出宽度为 w 个字符,或输人字符串时读入 w 个字符
|
setfill(c)
在指定输出宽度的情况下,输出的宽度不足时用字符 c 填充(默认情况是用空格填充)
|
setprecision(n)
设置输出浮点数的精度为 n。 在使用非 fixed 且非 scientific 方式输出的情况下,n 即为有效数字最多的位数,如果有效数字位数超过 n,则小数部分四舍五人,或自动变为科学计 数法输出并保留一共 n 位有效数字。 在使用 fixed 方式和 scientific 方式输出的情况下,n 是小数点后面应保留的位数。
|
setiosflags(flag)
将某个输出格式标志置为 1
|
resetiosflags(flag)
将某个输出格式标志置为 0