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

C++基础补充(03)C++20 的 std::format 函数

文章目录

  • 1. 使用C++20 std::format
  • 2. 基本用法
  • 3. 格式说明

1. 使用C++20 std::format

需要将VisualStudio默认的标准修改为C++20
菜单“项目”-“项目属性”,打开如下对话框
在这里插入图片描述
代码中加入头文件

2. 基本用法

通过占位符{}制定格式化的位置,后面传入变量

#include<iostream>
#include<format>
#include<string>
using namespace std;int main()
{int x = 68;double pi = 3.14159;string name = "Alice";//格式化字符串string rst = format("Hello,{}! The answer is {} and pi is {:.2f}.", name, x, pi);cout << rst << endl;return 0;
}

输出
Hello,Alice! The answer is 68 and pi is 3.14.

使用 {} 作为占位符,参数顺序插入
可以指定格式。{:.2f} 表示保留2位小数

3. 格式说明

详细可查阅手册
整数格式化

#include<iostream>
#include<format>
#include<string>
using namespace std;int main()
{int x = 68;cout << format("Decimal:{}\n", x);//十进制输出cout << format("Hex:{:#x}\n", x);//十六进制输出cout << format("Binary:{:#b}\n", x);//二进制输出return 0;
}

浮点数格式化

#include<iostream>
#include<format>
#include<string>
using namespace std;int main()
{double val = 3.14159;cout << format("Default: {}\n", val);  // 默认 3.14159cout << format("Fixed:{:.2f}\n", val); // 固定2位小数 3.14cout << format("Scientific:{:.2e}\n", val);//科学计数法 3.14e+00return 0;
}

字符串格式化

#include <iostream>
#include <format>
using namespace std;
int main() 
{string str = "Hello";cout << format("Default: {}\n", str);    // 默认输出: Hellocout << format("Padded: {:>10}\n", str); // 右对齐,宽度 10:      Hellocout << format("Left Padded: {:<10}\n", str);  // 左对齐,宽度 10: Hello     return 0;
}

输出
在这里插入图片描述
{:#x}:表示带有前缀的十六进制输出,前缀为 0x。
{:#b}:表示带有前缀的二进制输出,前缀为 0b。
{:05}:表示使用 5 位宽度输出,并用零进行左侧填充。
{:.2f}:表示浮点数保留两位小数。
{:.2e}:表示浮点数使用科学计数法输出,保留两位小数。

http://www.lryc.cn/news/459289.html

相关文章:

  • [论文笔记]DAPR: A Benchmark on Document-Aware Passage Retrieval
  • Spring Boot知识管理:智能搜索与分析
  • 操作系统(2) (进程调度/进程调度器类型/三种进程调度/调度算法)
  • 鸿蒙--知乎评论
  • 2024 - 两台CentOS服务器上的1000个Docker容器(每台500个)之间实现UDP通信(C语言版本)
  • 小程序该如何上架
  • XMOJ3065 旅游线路
  • 量化之一:均值回归策略
  • NVIDIA Bluefield DPU上的启动流程4个阶段分别是什么?作用是什么?
  • 最优美公式-欧拉公式,轻松理解版
  • 【力扣 | SQL题 | 每日3题】力扣1107,1112, 1077
  • 计算机网络(十一) —— 数据链路层
  • 使用PyTorch从0实现Fashion-MNIST数据集分类
  • Java数组的值拷贝和地址拷贝
  • 类与对象 中(剩余部分) 以及 日历
  • iOS 14 自定义画中画悬浮窗 Custom AVPictureInPictureController 实现方案
  • 【C#生态园】完整解读C#网络通信库:从基础到实战应用
  • js面试题---事件委托是什么
  • 谷歌浏览器 文件下载提示网络错误
  • 【记录】PPT|PPT 箭头相交怎么跨过
  • Linux中如何修改root密码
  • 中间件:SpringBoot集成Redis
  • 数据中心建设方案,大数据平台建设,大数据信息安全管理(各类资料原件)
  • TDD(测试驱动开发)是否已死?
  • Debezium系列之:实时从TDengine数据库采集数据到Kafka Topic
  • 数据结构(一)顺序表
  • 如何在 Jupyter Notebook 执行和学习 SQL 语句(中)
  • AutosarMCAL开发——基于EB Wdg驱动
  • Linux(1. 基本操作_命令)
  • 难点:Linux 死机定位(进程虚拟地址空间耗尽)