C++ <iomanip> 详解与示例
🧾 <iomanip> 是什么?
<iomanip> 是 C++ 标准库中用于 输入/输出格式控制 的头文件,包含大量格式化输出的操纵符(manipulators)。可用于控制数字格式、宽度、对齐方式、填充字符、进制等。
🔧 常见功能与示例
1. 设置小数位数 — setprecision(n)
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double x = 3.1415926;
cout << setprecision(3) << x << endl; // 输出:3.14
}
固定小数位方式:
cout << fixed << setprecision(3) << x; // 输出 3.142
2. 控制输出宽度 — setw(n)
cout << setw(10) << 123;
只对下一次输出生效。
3. 设置填充字符 — setfill
cout << setfill('0') << setw(5) << 42; // 输出:00042
4. 对齐方式 — left / right / internal
cout << setw(10) << left << 123 << "|
";
cout << setw(10) << right << 123 << "|
";
5. 科学计数法 / 固定计数法
double x = 12345.6789;
cout << fixed << x << endl;
cout << scientific << x << endl;
6. 布尔值格式 — boolalpha
cout << boolalpha << true << " " << false << endl;
7. 进制输出 — hex / dec / oct
int x = 255;
cout << hex << x << endl;
cout << dec << x << endl;
cout << oct << x << endl;
🔥 示例:表格对齐
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
cout << left << setw(10) << "Name"
<< right << setw(8) << "Score" << endl;
cout << left << setw(10) << "Alice"
<< right << setw(8) << 95 << endl;
cout << left << setw(10) << "Bob"
<< right << setw(8) << 88 << endl;
}
📌 小结
| 操纵符 | 功能 |
|---|---|
setw(n) |
宽度控制 |
setprecision(n) |
精度控制 |
setfill(ch) |
填充字符 |
left/right/internal |
对齐方式 |
fixed |
固定小数输出 |
scientific |
科学计数法 |
boolalpha |
布尔输出 |
hex/oct/dec |
进制设置 |