如何使用 C++20 格式库打印到标准输出或文件

问题描述 投票:0回答:1

众所周知,没有进入 C++20 格式库的一件事是打印到标准输出或通用文件流的函数。我们被承诺用

std::print()
来满足 C++23 中的这一需求,但这并不能暂时解决问题。

有哪些选项可以解决这个问题?

c++ format c++20 cout fmt
1个回答
6
投票

回答我自己的问题,解决方案其实很简单。

std::format_to
可以写入输出迭代器,因此所需要做的就是构造一个合适的迭代器。

#include <iostream>
#include <iterator>
#include <format>

int main()
{
    std::ostream_iterator<char> out(std::cout);  // Create an output iterator that writes to std::cout
                                                 // Replace std::cout with an ostream to write to a file
    std::format_to(out, "Hello {}!\n", "world");
    return 0;
}

请注意,如果我们在 C++23 中得到承诺的

std::print()
,这当然将变得完全没有必要。但这是一个有效的临时解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.