在 C++ 中,格式化输出通常使用流插入运算符 <<
结合输出流对象(如 std::cout
)来完成。C++ 标准库提供了一系列的控制符和函数来实现各种格式化输出需求。进行格式化输出时,除了控制输出宽度和精度外,还可以使用其他格式控制符来指定输出的格式,包括对齐方式、填充字符、十六进制、科学计数法等。
#include <iostream>
#include <cstdint> // 包含用于标准整数类型的头文件
#include <cmath>
#include <iomanip> // 包含头文件以使用格式化输出相关功能
int main() {
//1. 指定输出宽度
std::cout << std::setw(10) << "Hello" << std::endl; // 输出宽度为 10
//2. 指定精度
std::cout << std::setprecision(3) << 3.14159 << std::endl; // 输出精度为 3
// 3.控制对齐方式:
std::cout << std::left << std::setw(10) << "Hello" << std::endl; // 左对齐
std::cout << std::right << std::setw(10) << "Hello" << std::endl; // 右对齐
//4.设置填充字符:
std::cout << std::setfill('-') << std::setw(10) << "Hello" << std::endl; // 使用 '-' 填充
//5.输出格式设置
std::cout << std::fixed << 3.14159 << std::endl; // 固定小数点输出
std::cout << std::scientific << 3.14159 << std::endl; // 科学计数法输出
std::cout << std::hex << 255 << std::endl; // 十六进制输出
//6. 输出特殊字符
std::cout << std::oct << 255 << std::endl; // 八进制输出
//7. std::printf 进行更多的格式化输出:
int num = 42;
double pi = 3.14159;
// 控制输出的宽度和精度
std::printf("整数:%10d\n", num); // 设置输出宽度为 10
std::printf("浮点数:%.4f\n", pi); // 设置精度为 4
// 十六进制输出
std::printf("十六进制:%x\n", num); // 将整数以十六进制输出
// 科学计数法输出
std::printf("科学计数法:%e\n", pi); // 以科学计数法输出浮点数
return 0;
}
参考: