c++ printf 到 std::cout c++ printf 到 std::cout输出
c++ printf 到 std::cout
做为c++的资深c式使用者, printf使用率99.99%,而std::cout基本只用于hello world. 时代车轮在转动,c++23就要来了, 幸好有小言, 让我问问它.
以下面为示例
#include <stdio.h>
int main(int argc, char* argv[]) {
int iv = 99;
double dv = 3.1415926;
printf("int(%d=%07d) double(%7f=%.2f)\n", iv, iv, dv, dv);
return 0;
}
//打印显示为:
//int(99=0000099) double(3.141593=3.14)
1、首问: 使用c++ std::cout实现上面的效果 以下是使用C++ std::cout 实现与C代码相同输出的正确示例:
#include <iostream>
#include <iomanip>
int main(int argc, char* argv[]) {
int iv = 99;
double dv = 3.1415926;
std::cout << "int(" << iv << "=" << std::setw(7) << std::setfill('0') << iv << ") double(" << dv << "=" << std::setprecision(2) << dv << ")\n";
return 0;
}
在这个示例中,我们使用了 std::cout 来输出格式化的字符串。 std::setw(7) 用于设置输出宽度为7个字符, std::setfill('0') 用于设置填充字符为0。 std::setprecision(2) 用于设置输出精度为2位小数。 其他部分与C代码相同,只是将 printf 替换为 std::cout,并添加了必要的头文件 #include <iomanip>。
2、还有呢 在C++20中,引入了一个新的标准库 <format>,用于实现字符串的格式化输出。该库提供了一个名为 std::format 的函数,可以方便地格式化字符串并输出。 以下是使用 std::format 实现与上述C代码相同输出的示例:
#include <iostream>
#include <format>
int main() {
int iv = 99;
double dv = 3.1415926;
std::cout << std::format("int({}={:07}) double({:.7f}={:.2f})\n", iv, iv, dv, dv);
return 0;
}
在这个示例中,我们使用了 std::format 函数来格式化字符串。"{}={:07}" 表示一个占位符,使用 {} 表示要插入的变量,:07 表示输出宽度为7个字符,并使用0进行填充。"{}:.2f" 表示一个浮点数占位符,使用 {} 表示要插入的变量,.2f 表示输出精度为2位小数。然后通过 std::cout 输出格式化后的字符串。 需要注意的是,为了使用 <format> 库,需要包含头文件 <format>,并使用命名空间 std 中的 format 函数。
相关文章
- Linux服务器硬件信息查询与日常运维命令总结
- Linux服务器带宽跑不满?用ethtool调优网卡参数,性能提升30%
- 如何在 Rocky Linux 中查看网卡流量?跟着小编学习iftop安装和使用
- Linux查看网卡速率_linux查看网卡当前速率
- 五一我要看七天小说!免费开源的轻量化书库talebook搭建流程。
- 我是如何用这3个小工具,助力小姐姐提升100%开发效率的
- html5和css3的常用参考网_基于html5和css3的网页制作
- 超详细的网络抓包神器 tcpdump 使用指南
- Vue 技术栈(全家桶)_vue全栈项目教程
- 学习ES6- 入门Vue(大量源代码及笔记,带你起飞)