优秀的编程知识分享平台

网站首页 > 技术文章 正文

c++ printf 到 std::cout(c++怎么用printf输出整数)

nanyue 2024-09-12 15:54:09 技术文章 11 ℃

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 函数。

Tags:

最近发表
标签列表