首页 > 后端开发 > C++ > 正文

C++怎么使用Fmtlib进行格式化输出_C++高性能的文本格式化库fmt入门

裘德小鎮的故事
发布: 2025-11-22 16:33:02
原创
808人浏览过
fmt是一个高效安全的C++格式化库,已纳入C++20标准;1. 可通过vcpkg、conan、头文件或CMake集成;2. 使用fmt::print进行输出,支持类型自动推导与精度控制;3. 用fmt::format生成字符串,适用于日志拼接;4. 支持对齐填充、进制转换和时间格式化等高级功能,需注意正确链接库或包含头文件。

c++怎么使用fmtlib进行格式化输出_c++高性能的文本格式化库fmt入门

fmt 是一个现代、高效、安全的 C++ 格式化库,提供了比 printfiostreams 更简洁、更快速的文本格式化方式。它被广泛用于高性能场景,并已被纳入 C++20 的标准库中(<format> 就是基于 fmt 设计的)。以下是使用 fmt 入门的基本方法。

1. 安装与配置 fmt 库

fmt 支持多种集成方式,常见有以下几种:

在 CMake 中链接 fmt:

cmake_minimum_required(VERSION 3.14)
project(example)

find_package(fmt REQUIRED)
add_executable(hello main.cpp)
target_link_libraries(hello fmt)

2. 基本格式化输出

包含头文件并使用 fmt::print 进行输出:

立即学习C++免费学习笔记(深入)”;

#include <fmt/core.h>

int main() {
fmt::print("Hello, {}!\n", "world");
fmt::print("The number is {}\n", 42);
fmt::print("Pi is {:.2f}\n", 3.14159);
return 0;
}

说明:

Smart Picture
Smart Picture

Smart Picture 智能高效的图片处理工具

Smart Picture 77
查看详情 Smart Picture
  • {} 是占位符,自动推导类型。
  • {:.2f} 表示浮点数保留两位小数。
  • 支持字符串、数字、布尔值等常见类型。

3. 格式化字符串并获取结果

使用 fmt::format 生成格式化字符串:

#include <fmt/core.h>
#include <iostream>

int main() {
std::string msg = fmt::format("User {} logged in from IP {}.", "Alice", "192.168.1.1");
std::cout << msg << std::endl;
return 0;
}

适用于日志拼接、动态消息构建等场景。

4. 高级格式控制

fmt 支持丰富的格式选项:

  • 对齐与填充
    fmt::print("{:>10}\n", "right"); // 右对齐,宽度10,用空格填充
  • 进制转换
    fmt::print("Hex: {:#x}, Bin: {:#b}, Oct: {:#o}\n", 255, 255, 255);
  • 时间格式化(需包含 chrono 支持)
    #include <fmt/chrono.h>
    auto now = std::chrono::system_clock::now();
    fmt::print("Now: {:%Y-%m-%d %H:%M:%S}\n", now);

基本上就这些。fmt 使用直观,性能高,错误少,适合替代传统的 printf 和 stringstream。集成后几乎可以统一所有格式化需求。不复杂但容易忽略的是记得链接库或正确包含头文件。

以上就是C++怎么使用Fmtlib进行格式化输出_C++高性能的文本格式化库fmt入门的详细内容,更多请关注php中文网其它相关文章!

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号