setw
是 C++ 中用于设置输出字段宽度的函数,属于 <iomanip>
头文件。以下是其使用方法及注意事项:
基本用法
-
包含头文件:
#include <iostream> #include <iomanip> // 必须包含此头文件 using namespace std; // 避免写 std::
-
设置字段宽度:
int num = 123; cout << "[" << setw(5) << num << "]"; // 输出为 [ 123]
setw(5)
表示下一个输出项占 5 个字符宽度。- 内容长度 < 宽度时,默认右对齐并用空格填充左侧。
- 内容长度 ≥ 宽度时,完整输出,不截断。
示例代码
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
cout << "[" << setw(6) << 42 << "]\n"; // 输出 [ 42]
cout << "[" << setw(3) << "ABC" << "]\n"; // 输出 [ABC](内容宽度≥3)
return 0;
}
注意事项
-
作用范围:
setw
仅对紧随其后的下一个输出项生效。cout << setw(4) << 1 << 2; // 输出 [ 12],setw(4) 只对 1 生效
-
填充字符:可用
setfill
修改填充字符(如*
):cout << setfill('*') << setw(5) << 7; // 输出 ****7
-
对齐方式:可用
left
/right
控制对齐方向:cout << left << setw(5) << 7; // 输出 7 (左对齐)
输出效果示例
代码 | 输出结果 |
---|---|
cout << setw(5) << 10; | 10 |
cout << setw(2) << 100; | 100 |
cout << setw(5) << "Hi"; | Hi |
确保代码中已使用 using namespace std;
,即可直接使用 setw
而无需 std::
前缀。