当前位置: 首页 > news >正文

fmt库使用教程

介绍

fmt是一个现代化、易用的c++格式化库,现已进入c++20标准。

源码地址:https://github.com/fmtlib/fmt.git

测试版本:12.0.0

占位符

占位符格式

功能

示例

输出

{}

自动位置,默认格式

fmt::format("{}+{}", 1, 2)

1+2

{n}

手动位置,默认格式

fmt::format("{1}+{0}", 1, 2)

2+1

{:spec}

自动位置,自定义格式

fmt::format("{:.2f}", 3.14159)

3.14

{n:spec}

手动位置,自定义格式

fmt::format("{1:.2f}+{0}", 1, 3.14159)

3.14+1

格式说明符

一般形式为:{:[填充字符][对齐方式][符号][#][0][宽度][.精度][类型]}

字符串的形式为:[填充字符][对齐方式][宽度][类型];

整数的常用形式为:[符号][#][0][宽度][类型],通过[0]的实现右对齐并向左填充0;

整数的另一种形式为:[填充字符][对齐方式][符号][#][宽度][类型],允许指定对齐方式和填充字符;

浮点数的形式为:[符号][#][0][宽度][.精度][类型]仅针对数值类型,包括整数、浮点数;

浮点数的另一种形式为:[填充字符][对齐方式][符号][#][宽度][.精度][类型]

布尔的形式为:与字符串相同

通用格式

格式:[填充字符 ][对齐方式][宽度]

#include <fmt/format.h>int main() {std::string text = "hello";int number = 42;// 字符串对齐(默认左对齐)fmt::print("|{:<10}|\n", text);    // |hello     | - 左对齐fmt::print("|{:^10}|\n", text);    // |  hello   | - 居中对齐  fmt::print("|{:>10}|\n", text);    // |     hello| - 右对齐// 数字对齐(默认右对齐)fmt::print("|{:<10}|\n", number);  // |42        | - 左对齐fmt::print("|{:^10}|\n", number);  // |    42    | - 居中对齐fmt::print("|{:>10}|\n", number);  // |        42| - 右对齐// 自定义填充字符fmt::print("|{:*<10}|\n", text);   // |hello*****| - 左对齐,*填充fmt::print("|{:=^10}|\n", number); // |====42====| - 居中对齐,=填充fmt::print("|{:.>10}|\n", text);   // |.....hello| - 右对齐,.填充return 0;
}

[符号]

显示数值正负号。

#include <fmt/format.h>int main() {int positive = 42;int negative = -42;// 默认:只显示负号fmt::print("{}\n", positive);  // 42fmt::print("{}\n", negative);  // -42// + : 总是显示符号fmt::print("{:+}\n", positive); // +42fmt::print("{:+}\n", negative); // -42// 空格 : 正数前加空格,负数显示负号fmt::print("{: }\n", positive); // " 42"(前面有个空格)fmt::print("{: }\n", negative); // -42
}

[#]

显示数值类型的前缀。

#include <fmt/format.h>int main() {int num = 255;// 十六进制fmt::print("{:x}\n", num);      // fffmt::print("{:#x}\n", num);     // 0xff// 二进制fmt::print("{:b}\n", num);      // 11111111fmt::print("{:#b}\n", num);     // 0b11111111
}

[0]

零填充(只在未指定对齐方式时有效)

#include <fmt/format.h>int main() {int num = 42;// 普通宽度填充(空格)fmt::print("|{:6}|\n", num);    // |    42|// 零填充fmt::print("|{:06}|\n", num);   // |000042|// 负数的情况fmt::print("|{:06}|\n", -num);  // |-00042|// 与其他格式组合fmt::print("|{:#08x}|\n", 255); // |0x0000ff|// 重要:零填充与对齐冲突时,零填充被忽略fmt::print("|{:<06}|\n", num);  // |42    | - 使用空格填充return 0;
}

[.精度]

浮点数精度控制。

#include <fmt/format.h>int main() {double pi = 3.1415926535;// 浮点数精度fmt::print("{:.2f}\n", pi);    // 3.14fmt::print("{:.5f}\n", pi);    // 3.14159fmt::print("{:.0f}\n", pi);    // 3
}

[类型]

整数。

#include <fmt/format.h>int main() {int num = 255;fmt::print("{:d}\n", num);  // 255      - 十进制fmt::print("{:x}\n", num);  // ff       - 十六进制fmt::print("{:b}\n", num);  // 11111111 - 二进制fmt::print("{:c}\n", 65);   // A        - 字符
}

浮点数。

#include <fmt/format.h>int main() {double val = 123.456789;fmt::print("{:f}\n", val);  // 123.456789   - 固定小数
}

字符串。

#include <fmt/format.h>int main() {std::string text = "hello";fmt::print("{:s}", text);    // hello  - 字符串(默认)
}

布尔。

#include <fmt/format.h>int main() {bool flag = true;fmt::print("{}\n", flag);        // true   - 默认为文本格式fmt::print("{:<10s}\n", flag);   // true   - 左对齐,宽度10fmt::print("{:d}\n", flag);      // 1      - 数字形式
}

特殊用法

直接输出到stdout

fmt::print("Hello, world!\n");

http://www.dtcms.com/a/428999.html

相关文章:

  • FotoJet Designer(制作海报和图片)多语便携版
  • 我是做装修的怎么样投资网站修改wordpress 字体
  • 中国电信新建网站备案管理系统 录完信息网站建设设计制作公司
  • 邢台企业网站建设好么app生成器手机版
  • 企业做网站需要哪些人员请人做网站需要注意什么条件
  • 网站建设与管理的流程方案知名的网页制作公司推荐
  • 自助健站中国十大服务外包企业
  • 电子商务网站建设文献电子商务在酒店管理网站建设
  • 网站开发开源软件小勇cms网站管理系统
  • 9.30 组合数学
  • 中国上海网站首页做面包国外网站
  • OpenCV3-边缘检测-图像金字塔和轮廓检测
  • 朝阳网站建设 国展港港网app下载最新版
  • 滨州企业网站建设网站迁移
  • 青岛网站设计机构wordpress中文路径
  • 中交建设集团网站新闻石家庄网站建设浩森宇特
  • 小公司网站维护wordpress批量提交表单
  • 厦门网站开发平台ic手机网站开发平台
  • 东莞快速做网站伊春网络运营推广
  • 搭一个网站网站开发网页前置开发
  • 网站付费推广竞价毕业设计网站建设软件项目
  • Linux查找命令全解析
  • 婚纱摄影网站模板免费下载网站正在建设 敬请期待
  • Redis持久化:RDB与AOF全面解析
  • 做网站看深圳平湖网站开发
  • 海外网站速度慢网站留言功能
  • 山东省城乡与住房建设厅网站首页做网站资讯运营
  • 网站建设需要哪些岗位推广链接代点
  • 广安 网站建设c 网站开发实例
  • 搜索引擎网站排名优化方案wordpress主题设置