网站首页 > 技术文章 正文
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 函数。
猜你喜欢
- 2024-09-12 C 语言未初始化的局部变量是多少?
- 2024-09-12 大话C语言:函数(c语言函数视频讲解)
- 2024-09-12 每日一题||C语言刷题(c语言刷题网)
- 2024-09-12 大话C语言:逗号运算符及运算法优先级
- 2024-09-12 C语言学习篇(14)-----sizeof运算符
- 2024-09-12 C语言 include的用法(c语言include的用法与搭配)
- 2024-09-12 C语言的位运算基本操作演示(c语言位运算的运算规则)
- 2024-09-12 编写一个C程序,输入a,b,c三个值,输出其中最大值
- 2024-09-12 C语言如何实现大数相加(c语言大数相加思路)
- 2024-09-12 看了这几个C语言例子,你一定会说5个哇塞,声音一次比一次大
- 1522℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 646℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 527℃MySQL service启动脚本浅析(r12笔记第59天)
- 492℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 492℃启用MySQL查询缓存(mysql8.0查询缓存)
- 479℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 461℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 459℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)