1. 输出宽度
#include <iostream>
#include <iomanip>
int main() {
std::cout << '[' << std::setw(6) << 42 << "]\n";
}
[ 42]
std::setw(6)
:设置(只影响)紧随其后的输出内容的最小宽度为 6 个字符。
2. 填充字符
#include <iostream>
#include <iomanip>
int main() {
std::cout << '[' << std::setfill('*') << std::setw(6) << 42 << "]\n";
}
[****42]
只影响紧随其后的输出。
3. 整数基数
#include <iostream>
#include <iomanip>
int main() {
int n = 56892;
// 只支持 8、10、16 进制
std::cout << std::setbase(8) << n << '\n';
std::cout << std::setbase(16) << n << '\n';
}
157074
de3c
只影响紧随其后的输出。
4. 浮点数精度
#include <iostream>
#include <iomanip>
int main() {
long double pi = 3.141592653589793239;
std::cout << std::setprecision(8) << pi << '\n';
}
3.1415927
std::setprecision(8)
:设置输出 8 位有效数字,只影响紧随其后的输出。
5. 对齐方式
#include <iostream>
#include <iomanip>
int main() {
std::cout << std::left << std::setfill('*') << std::setw(12) << 42 << '\n';
std::cout << std::setfill('*') << std::setw(12) << 42 << '\n';
std::cout << std::right << std::setfill('*') << std::setw(12) << 42 << '\n';
}
42**********
42**********
**********42
修改默认的对齐方式,即会影响后续所有输出!