setw 是 C++ 标准库 <iomanip> 中的一个函数,用于设置输出字段的宽度。它通常与 std::cout 一起使用,以控制输出的对齐和格式化。
setw 的基本用法
-
头文件:
-
使用
setw需要包含<iomanip>头文件。
-
-
语法:
std::setw(int n);n:指定输出字段的宽度(即占用的字符数)。 -
作用:
-
设置下一个输出项的宽度。
-
如果输出项的字符数小于
n,则用空格填充(默认右对齐)。 -
如果输出项的字符数大于
n,则不会截断,输出完整的项。
-
示例代码
以下是一个简单的示例,展示了 setw 的用法:
#include <iostream>
#include <iomanip> // 包含 setw 的头文件
using namespace std;
int main() {
int a = 123;
double b = 45.67;
string c = "Hello";
// 设置输出宽度为 10
cout << "a: " << setw(10) << a << endl;
cout << "b: " << setw(10) << b << endl;
cout << "c: " << setw(10) << c << endl;
return 0;
}
输出结果
a: 123
b: 45.67
c: Hello
1.setw(10) 指定了输出宽度为 10 个字符。
2.输出项不足 10 个字符时,用空格填充(默认右对齐)。
setw 与其他格式化函数结合使用
setw 可以与其他格式化函数(如 left、right、setfill 等)结合使用,以实现更复杂的格式化效果。
1. 设置对齐方式
-
left:左对齐。 -
right:右对齐(默认)。
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int a = 123;
double b = 45.67;
string c = "Hello";
// 左对齐
cout << "a: " << left << setw(10) << a << endl;
cout << "b: " << left << setw(10) << b << endl;
cout << "c: " << left << setw(10) << c << endl;
return 0;
}
输出结果:
a: 123
b: 45.67
c: Hello
2. 设置填充字符
-
setfill(char c):设置填充字符(默认为空格)。
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int a = 123;
double b = 45.67;
string c = "Hello";
// 设置填充字符为 '*'
cout << "a: " << setfill('*') << setw(10) << a << endl;
cout << "b: " << setfill('*') << setw(10) << b << endl;
cout << "c: " << setfill('*') << setw(10) << c << endl;
return 0;
}
输出结果:
a: *******123
b: *****45.67
c: *****Hello
setw 的注意事项
-
作用范围:
-
setw只对下一个输出项有效。如果需要为多个输出项设置宽度,需要多次调用setw。
-
-
对齐方式:
-
默认右对齐,可以通过
left或right修改对齐方式。
-
-
填充字符:
-
默认填充字符为空格,可以通过
setfill修改填充字符。
-
-
字段宽度不足:
-
如果输出项的字符数大于
setw设置的宽度,输出项不会被截断,而是完整输出。
-
总结
| 函数 | 作用 | 示例 |
|---|---|---|
setw(int n) | 设置输出字段的宽度 | cout << setw(10) << 123; |
left | 设置左对齐 | cout << left << setw(10) << 123; |
right | 设置右对齐(默认) | cout << right << setw(10) << 123; |
setfill(char) | 设置填充字符 | cout << setfill('*') << setw(10) << 123; |
6431

被折叠的 条评论
为什么被折叠?



