
C++ cout格式化输出指南
文章摘要
Deepseek-v3.2
C++ cout
格式化输出完全指南
1. 什么是 cout
格式化?
cout 是 C++
的标准输出流,默认情况下它直接输出内容,比如:
cout << 123; // 输出:123 |
但有时候我们想让输出更整齐、更美观,比如:
- 让数字固定宽度(如
00123) - 控制小数位数(如
3.14而不是3.1415926) - 让
true显示为"是"而不是1 - 让数字右对齐,并用
*填充空白
这些功能就是 cout 格式化,主要通过
<iomanip> 和 <ios>
头文件实现。
2. 最常用的格式化功能
(1) 设置输出宽度
setw(n)
作用:控制输出的最小宽度(如果内容不够宽,会补空格或指定字符)。
示例:
cout << setw(5) << 123; // 输出:" 123"(前面补 2 个空格)
setw(5)表示“最少占 5 个字符”,123只有 3 个字符,所以前面补 2 个空格。
(2) 设置填充字符
setfill('c')
作用:用指定字符填充空白(默认是空格)。
示例:
cout << setfill('*') << setw(5) << 123; // 输出:"**123"
setfill('*')表示用*填充空白。
(3) 对齐方式 left /
right
作用:控制内容是左对齐还是右对齐。
示例:
cout << left << setw(5) << setfill('-') << 123; // 输出:"123--"(左对齐)
cout << right << setw(5) << setfill('-') << 123; // 输出:"--123"(右对齐)left= 左对齐,right= 右对齐(默认)。
3. 数字格式化
(1) 控制进制(十进制、十六进制、八进制)
| 操纵符 | 作用 | 示例 | 输出 |
|---|---|---|---|
dec |
十进制 | cout << dec << 15; |
15 |
hex |
十六进制(小写) | cout << hex << 15; |
f |
oct |
八进制 | cout << oct << 15; |
17 |
示例:
int num = 15; |
(2) 显示进制前缀
showbase
作用:在十六进制和八进制前加
0x或0。示例:
cout << showbase << hex << 15; // 输出:0xf
cout << showbase << oct << 15; // 输出:017
(3) 十六进制字母大写
uppercase
作用:让
a-f变成A-F。示例:
cout << uppercase << hex << 15; // 输出:0xF(而不是 0xf)
4. 浮点数格式化
(1) 固定小数位数
fixed
作用:让浮点数以固定小数位数显示。
示例:
double pi = 3.1415926535;
cout << fixed << setprecision(2) << pi; // 输出:3.14setprecision(2)表示“保留 2 位小数”。
(2) 科学计数法
scientific
作用:用科学计数法显示(如
3.14e+00)。示例:
cout << scientific << pi; // 输出:3.141593e+00
(3) 恢复默认浮点显示
defaultfloat
作用:取消
fixed或scientific的效果。示例:
cout << defaultfloat << pi; // 输出:3.14159(默认方式)
5. 布尔值格式化
(1) 显示
true/false 文本
boolalpha
作用:让
true显示为"true",false显示为"false"(默认是1和0)。示例:
bool isReady = true;
cout << boolalpha << isReady; // 输出:true
cout << noboolalpha << isReady; // 输出:1
6. 其他实用功能
(1) 显示正数的 + 号
showpos
作用:正数前面显示
+。示例:
cout << showpos << 123; // 输出:+123
(2) 强制显示小数点
showpoint
作用:即使小数部分是
0,也显示小数点。示例:
cout << showpoint << 3.0; // 输出:3.00000
7. 完整示例
|
输出:
十六进制: 0XFF |
8. 总结
| 功能 | 代码示例 | 作用 |
|---|---|---|
| 设置宽度 | setw(5) |
控制最小输出宽度 |
| 填充字符 | setfill('*') |
用 * 填充空白 |
| 左对齐 | left |
内容靠左 |
| 右对齐 | right |
内容靠右(默认) |
| 十六进制 | hex |
输出十六进制 |
| 固定小数 | fixed << setprecision(2) |
保留 2 位小数 |
| 科学计数法 | scientific |
如 3.14e+00 |
| 布尔文本 | boolalpha |
显示 true/false |
这些功能可以组合使用,让你的输出更整齐、更专业!
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自guangzhou_even
评论 ()















