#include <iomanip>

#include <iomanip> 是 C++ 标准库中用于 格式化输入/输出(I/O) 的头文件,主要提供了一些 流操作符(manipulators),用于控制输出格式(如字段宽度、精度、对齐方式等)。它是 <iostream> 的扩展,专门用于更精细的 I/O 控制。


主要功能

<iomanip> 中常用的流操作符包括:

1. 设置字段宽度(std::setw

  • 作用:指定下一个输出项的最小宽度(不足时填充空格)。
  • 示例
    #include <iostream>
    #include <iomanip>  // 必须包含此头文件
    
    int main() {
        std::cout << std::setw(10) << "Hello" << std::setw(5) << 42 << std::endl;
        // 输出: "     Hello   42"("Hello"占10字符,42占5字符)
        return 0;
    }
    
    • setw 只对 紧随其后的一个输出项 生效。

2. 设置填充字符(std::setfill

  • 作用:指定填充空白位置的字符(默认是空格)。
  • 示例
    std::cout << std::setfill('*') << std::setw(10) << "Hi" << std::endl;
    // 输出: "********Hi"(用 * 填充宽度不足的部分)
    

3. 控制浮点数精度(std::setprecision

  • 作用:设置浮点数输出的 有效数字位数小数位数(取决于 std::fixed)。
  • 示例
    double pi = 3.1415926535;
    std::cout << std::setprecision(4) << pi << std::endl;  // 输出 3.142(四舍五入)
    
    // 结合 std::fixed 固定小数位数
    std::cout << std::fixed << std::setprecision(2) << pi; // 输出 3.14
    

4. 控制对齐方式(std::left, std::right, std::internal

  • 作用:指定输出内容的对齐方式。
  • 示例
    std::cout << std::left << std::setw(10) << "Hello";   // 左对齐:"Hello     "
    std::cout << std::right << std::setw(10) << "Hello";  // 右对齐:"     Hello"
    

5. 其他常用操作符

操作符作用示例
std::hex / std::oct / std::dec设置整数的进制(16/8/10)std::cout << std::hex << 255;ff
std::uppercase16进制字母大写std::cout << std::uppercase << std::hex << 255;FF
std::boolalpha布尔值输出为 true/falsestd::cout << std::boolalpha << true;true

为什么需要 <iomanip>

  • <iostream> 只提供基本的输入输出(如 cout << "Hello";),但无法精细控制格式(如宽度、精度等)。
  • <iomanip> 补充了这些功能,让输出更美观、符合需求(如表格对齐、固定小数位数等)。

完整示例

#include <iostream>
#include <iomanip>

int main() {
    double price = 99.99;
    int quantity = 5;

    // 输出一个对齐的表格
    std::cout << std::left << std::setw(10) << "Item"
              << std::right << std::setw(10) << "Price"
              << std::setw(10) << "Quantity" << std::endl;

    std::cout << std::left << std::setw(10) << "Apple"
              << std::right << std::fixed << std::setprecision(2)
              << std::setw(10) << price
              << std::setw(10) << quantity << std::endl;

    return 0;
}

输出:

Item      Price  Quantity
Apple     99.99         5

总结

  • <iomanip> 用于 格式化输出(宽度、精度、对齐、进制等)。
  • 常用操作符:
    • std::setw(n):设置字段宽度。
    • std::setprecision(n):设置浮点数精度。
    • std::setfill(c):设置填充字符。
    • std::left / std::right:控制对齐方式。
  • 适用于 表格输出、财务计算、日志格式化 等场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1234哈哈哈哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值