首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C++20 格式化库:强大的字符串格式化工具

C++20 格式化库:强大的字符串格式化工具

原创
作者头像
码事漫谈
发布2025-03-11 19:17:50
发布2025-03-11 19:17:50
33300
代码可运行
举报
文章被收录于专栏:C++C++
运行总次数:0
代码可运行

C++20 的格式化库是一个强大的工具,用于处理字符串的格式化操作。它提供了类似于 Python 中 str.format() 的功能,但语法和用法更符合 C++ 的风格。以下是一些关于 C++20 格式化库的介绍和示例:

格式化语法

C++20 的格式化库通过 std::format 函数实现,其基本语法如下:

代码语言:cpp
代码运行次数:0
运行
复制
std::string formatted = std::format(format_string, args...);

其中,format_string 是格式化字符串,args 是需要格式化的参数。

常见用法

1. 填充和对齐
  • 左对齐:std::format("{:<10}", value)
  • 右对齐:std::format("{:>10}", value)
  • 居中对齐:std::format("{:^10}", value)
  • 自定义填充字符:std::format("{:*<10}", value)
2. 数值格式化
  • 指定宽度:std::format("{:10}", value)
  • 指定精度:std::format("{:.5f}", value)
  • 补零:std::format("{:010}", value)
  • 显示符号:std::format("{:+}", value)
3. 进制格式化
  • 十进制:std::format("{:d}", value)
  • 二进制:std::format("{:b}", value)
  • 八进制:std::format("{:o}", value)
  • 十六进制:std::format("{:x}", value)
4. 自定义类型

如果需要格式化自定义类型,需要为该类型提供一个 std::formatter 特化。

示例代码

以下是一些使用 C++20 格式化库的示例代码:

代码语言:cpp
代码运行次数:0
运行
复制
#include <iostream>
#include <format>

int main() {
    int number = 42;
    std::string formatted = std::format("The answer is {}!", number);
    std::cout << formatted << std::endl;

    double pi = 3.141592653589793;
    std::cout << std::format("Pi is {:.5f}\n", pi);

    std::cout << std::format("{:*^10}", ":)") << std::endl;
    std::cout << std::format("{:010}", 123) << std::endl;

    return 0;
}

注意事项

  • C++20 的格式化库是标准库的一部分,但需要编译器支持 C++20 特性。
  • 如果编译器尚未支持,可以使用类似的第三方库,如 fmt

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 格式化语法
    • 常见用法
      • 1. 填充和对齐
      • 2. 数值格式化
      • 3. 进制格式化
      • 4. 自定义类型
  • 示例代码
  • 注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档