std::format
是 C++20 中引入的一个新特性,它提供了一种类型安全且易于使用的方式来格式化字符串。这个函数类似于 Python 的 str.format
或 C# 的 string.Format
,但它是 C++ 标准库的一部分。
std::format
的基本语法如下:
std::string formatted_string = std::format("{0} {1} {2}", arg1, arg2, arg3);
在这个例子中,{0}
、{1}
和 {2}
是占位符,它们将被 arg1
、arg2
和 arg3
的值替换。
std::format
支持多种类型的参数,包括:
int
、float
、double
、char
、bool
)std::string
)int*
、float*
等)int&
、float&
等)const char*
)std::format
支持一些基本的格式说明符,如:
%d
或 d
:十进制整数%f
或 f
:浮点数(默认精度为 6 位小数)%s
或 s
:字符串%c
或 c
:字符%o
或 o
:八进制整数%x
或 x
:十六进制整数(小写)%X
或 X
:十六进制整数(大写)%p
或 p
:指针值(以十六进制表示)你还可以使用 %n
来插入换行符。
下面是一些使用 std::format
的示例:
#include <iostream>
#include <format>
#include <string>
int main() {
int a = 123;
float b = 456.789f;
std::string s = "hello";
std::string formatted = std::format("Integer: %d, Float: %.2f, String: %s", a, b, s);
std::cout << formatted << std::endl;
return 0;
}
在这个例子中,%.2f
指定了浮点数 b
的精度为 2 位小数。输出将是:
Integer: 123, Float: 456.79, String: hello
注意:由于 std::format
返回的是 std::string
类型,因此你可以像处理任何其他字符串一样处理它。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。