0

0

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

裘德小鎮的故事

裘德小鎮的故事

发布时间:2025-11-22 16:33:02

|

839人浏览过

|

来源于php中文网

原创

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

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

fmt 是一个现代、高效、安全的 C++ 格式化库,提供了比 printfiostreams 更简洁、更快速的文本格式化方式。它被广泛用于高性能场景,并已被纳入 C++20 的标准库中( 就是基于 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

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

说明:

Descript
Descript

一个多功能的音频和视频编辑引擎

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

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

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

#include
#include stream>

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

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

4. 高级格式控制

fmt 支持丰富的格式选项:

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

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

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

185

2023.09.27

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

318

2023.08.02

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

619

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

431

2024.06.27

printf用法大全
printf用法大全

php中文网为大家提供printf用法大全,以及其他printf函数的相关文章、相关下载资源以及各种相关课程,供大家免费下载体验。

73

2023.06.20

fprintf和printf的区别
fprintf和printf的区别

fprintf和printf的区别在于输出的目标不同,printf输出到标准输出流,而fprintf输出到指定的文件流。根据需要选择合适的函数来进行输出操作。更多关于fprintf和printf的相关文章详情请看本专题下面的文章。php中文网欢迎大家前来学习。

281

2023.11.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

258

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

208

2023.09.04

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

11

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.8万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.5万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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