详解C++cout格式化输出完全攻略
写算法题的时候突然发现⾃⼰忘记基本的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 位有