保存到文件时如何使用像 printf 这样的字符串格式?

How do I use string format like printf while saving to a file?

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

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

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

我知道在 Java 中您可以使用 PrintWriter 来做类似的事情,但是是否有 C++ 等效项?

我也知道我在这里双重浸入,但如果我也能得到 C++ 的 Java FileWriter 等价物,那会很棒,因为我的程序覆盖了我的文件内容,它不会'不要附加到它。

可以使用snprintf格式化内存中的字符串,然后通过<<写入ofstream

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

对于 C++ 风格的 ostream 输出,这种格式化是通过流操纵器完成的:

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

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