#include <iomanip> 这个头文件是C++ 的 “输入输出流格式化操作符库”(Input/Output Manipulators)。 它的作用:专门用来精细控制 cout 和 cin 的显示格式,比如设置输出宽度、对齐方式、小数位数、进制转换等。操纵符(写在cout里) | 作用 | 代码示例 | 输出效果(假设 num=1, name="Tom", avg=95.5) |
|---|---|---|---|
setw(n) | 设置输出宽度(只对紧跟其后的一个变量有效,右对齐) | cout << setw(5) << num; | " 1"(前面补 4 个空格,总宽 5) |
setprecision(n) | 设置浮点数有效位数(配合fixed就是小数点后几位) | cout << fixed << setprecision(2) << avg; | "95.50"(固定两位小数) |
left/right | 设置左对齐或右对齐 | cout << left << setw(10) << name; | "Tom "(后面补空格) |
举例:
#include <iostream> #include <iomanip> // 必须加这个头文件! using namespace std; int main() { string name = "Alice"; float ave = 90.3333; int num = 1; // 完美的表格排版 cout << left << setw(8) << "学号" << left << setw(10) << "姓名" << right << setw(8) << "平均分" << endl; cout << left << setw(8) << num << left << setw(10) << name << right << fixed << setprecision(2) << setw(8) << ave << endl; return 0; }输出结果
学号 姓名 平均分 1 Alice 90.33注意
setw是“一次性”的!
比如cout << setw(5) << a << b;,只有a占了 5 个宽度,b紧跟在后面,不享受setw的效果。你必须对每一个想排版的变量重新写一次setw。fixed和setprecision是“粘性”的!
一旦你写了cout << fixed << setprecision(2),后面所有的浮点数都会保留两位小数,直到你手动改掉它。