gpt4 book ai didi

c++ - 如何使用具有类似 printf 格式的 C++ std::ostream?

转载 作者:bug小助手 更新时间:2023-10-28 10:44:18 25 4
gpt4 key购买 nike

我正在学习 C++。 coutstd::ostream 类的一个实例。如何用它打印格式化的字符串?

我仍然可以使用 printf,但我想学习一种可以利用所有 C++ 优点的正确 C++ 方法。我认为 std::ostream 应该可以做到这一点,但我找不到正确的方法。

最佳答案

你唯一能用 std::ostream 做的事直接就是众所周知的<< -语法:

int i = 0;
std::cout << "this is a number: " << i;

还有各种IO manipulators可用于影响整数、 float 等的格式、位数等。

但是,这与 printf 的格式化字符串不同。 . C++11 不包含任何允许您以与 printf 相同的方式使用字符串格式化的工具。 (printf 本身除外,如果你愿意,当然可以在 C++ 中使用它)。

就提供 printf 的库而言风格的功能,有 boost::format ,它启用了这样的代码(从概要复制):

std::cout << boost::format("writing %1%,  x=%2% : %3%-th try") % "toto" % 40.23 % 50;

另请注意,有一个 proposal for inclusionprintf - 标准 future 版本中的样式格式。如果这被接受,可能会出现如下语法:

std::cout << std::putf("this is a number: %d\n",i);

关于c++ - 如何使用具有类似 printf 格式的 C++ std::ostream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15106102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com