【问题标题】:How do I use string format like printf while saving to a file?如何在保存到文件时使用像 printf 这样的字符串格式?
【发布时间】:2016-02-14 03:06:05
【问题描述】:

我正在尝试将一些 double 变量保存到文件中,但我希望它们只保存 2 个小数位。如果我要将它们打印到终端,我会这样做:

printf ("var1: %.2f var2: %.2f\n", var1, var2);

我想知道是否有等价物,但在使用fstream 写入文件时使用。

我知道在 Java 中你可以使用 PrintWriter 来做类似的事情,但是有没有 C++ 等价物?

我也知道我在这里是双重浸入,但如果我也可以获得与 C++ 等效的 Java FileWriter,那就太好了,因为我的程序会覆盖我的文件内容,它不会附加到它。

【问题讨论】:

  • 什么是fprint? C 标准库提供了fprintf,它在 C++ 中也可用。如果您知道如何使用std::cout,您可以使用std::ofstream 执行相同的操作来写入文件。
  • fopen打开文件,用fprintf代替printf
  • 在 c++ 中,您将需要使用 std::ofstream 和格式化的插入运算符和 io 操纵器。见
  • 我刚开始使用c++,对语法不太了解,欢迎提供一些示例代码。
  • @5gon12eder 我知道我可以使用ofstream,但我不只是想写入文件,我还想要字符串格式。

标签: c++ file string-formatting


【解决方案1】:

如果你用 C 风格编写文件(使用FILE*),你可以使用fprintf()

对于 C++ 风格的 ostream 输出,这种格式化是使用流操作符完成的:

out << "var1: " << std::fixed << std::setprecision(2) << var1 << " var2: " << var2;

有时这很不方便(例如当格式取决于语言时,您需要从翻译文件中检索它)。

【讨论】:

    【解决方案2】:

    您可以使用snprintf 格式化内存中的字符串,然后通过&lt;&lt; 将其写入ofstream

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 2015-03-20
      • 2013-06-19
      相关资源
      最近更新 更多