fprinf_s 将双精度转换为 0.0000

fprinf_s converts double to 0.0000

让我们保持简短。

我得到了以下代码片段:

double score = 9.987654
fopen_s(&output, "9.output.txt", "w");
fprintf_s(output, "%.4f", &score);
fclose(output);

它在 9.output.txt 中写入 0.0000,它应该打印 9.9876。

知道问题出在哪里吗?

旧的基于 C 的 I/O 函数的缺点是它们不进行类型检查,否则错误会很明显。

%.4f 格式需要一个 double 作为参数。您已将 指针 传递给 double,这被误解了。