c++ - std::string 格式,如 sprintf

标签 c++ string formatting stdstring c++-standard-library

我必须格式化 std::string sprintf 并将其发送到文件流中。我怎样才能做到这一点?

最佳答案

您不能直接执行此操作,因为您没有对底层缓冲区的写访问权限(直到 C++11;请参阅 Dietrich Epp 的 comment )。您必须先在 c 字符串中执行此操作,然后将其复制到 std::string 中:

  char buff[100];
  snprintf(buff, sizeof(buff), "%s", "Hello");
  std::string buffAsStdStr = buff;

但我不确定为什么不只使用字符串流?我假设你有特定的理由不只是这样做:
  std::ostringstream stringStream;
  stringStream << "Hello";
  std::string copyOfStr = stringStream.str();

关于c++ - std::string 格式,如 sprintf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2342162/

相关文章:

c++ - QTreeWidget动态扩展列头宽度C++

java - 尝试解决 - 字符串索引超出范围

java - 在Java中从文件中读取windows文件名

javascript - 使用 RandExp 生成基于正则表达式的字符串

python - 限制 xticks pandas 条形图中的字符

vim - 如何让 Vim 的 `J` 和 `gq` 命令在一段时间后使用一个空格?

formatting - htop 输出到人类可读文件

android - gradle experimental 通过 srcDir srcFile 指令包含文件目录

c++ - 动态创建的作用域守卫

c++ - Boost::graph (c++) 优于 networkx (python)