C相当于sprintf?

新手上路,请多包涵

我知道 std::coutprintf 的 C++ 等价物。

sprintf 的 C++ 等价物是什么?

原文由 lital maatuk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 423
2 个回答

std::ostringstream

例子:

 #include <iostream>
#include <sstream> // for ostringstream
#include <string>

int main()
{
  std::string name = "nemo";
  int age = 1000;
  std::ostringstream out;
  out << "name: " << name << ", age: " << age;
  std::cout << out.str() << '\n';
  return 0;
}

输出:

 name: nemo, age: 1000

原文由 Vijay Mathew 发布,翻译遵循 CC BY-SA 3.0 许可协议

根据您对 sprintf() 的确切计划, std::to_string() 可能比其他选项有用且更惯用:

 void say(const std::string& message) {
 // ...
}

int main() {
  say(std::to_string(5));
  say("Which is to say " + std::to_string(5) + " words");
}

std::to_string() 的主要优点,恕我直言,它可以轻松扩展以支持 sprintf() 甚至无法梦想字符串化的其他类型 - 有点像 Java 的 Object.toString() 方法。

原文由 Guss 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题