用 std::format实现 sprintf
在 C++20 中引入了 std::format,它是一个新的格式化字符串函数,可以方便地替代 sprintf。使用 std::format,可以避免 sprintf 带来的一系列安全问题和类型转换问题。
下面是一个使用 std::format 实现 sprintf 的示例:
#include <format>
#include <iostream>
int main()
{
int num = 42;
double pi = 3.141592653589793;
std::string str1 = std::format("The answer is {}.", num);
std::cout << str1 << std::endl;
std::string str2 = std::format("Pi equals {:.2f}.", pi);
std::cout << str2 << std::endl;
return 0;
}
这个示例中,我们使用 std::format 来格式化字符串。它的语法类似于 printf,使用 {} 来表示需要替换的参数,并可以加上格式化选项。在这个示例中,我们分别使用了整数和浮点数来进行格式化,并且加上了一些格式化选项。
输出结果如下:
The answer is 42.
Pi equals 3.14.
可以看到,使用 std::format 可以方便地进行字符串格式化,并且避免了 sprintf 带来的一系列问题。
原文地址: https://www.cveoy.top/t/topic/sEc 著作权归作者所有。请勿转载和采集!