保存到文件时如何使用像 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;
有时这很不方便(例如当格式与语言相关时,您需要从翻译文件中检索它)。
我正在尝试将一些 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;
有时这很不方便(例如当格式与语言相关时,您需要从翻译文件中检索它)。