1

我正在编写需要进行一些调试的 C 代码。这就是我在文件中保存值“宽度”的原因。代码是:

setlocale(LC_ALL, "en_US.UTF-8");
FILE* fp2;
fopen_s(&fp2, "test.txt", "w");

width = 0.05;

fprintf(fp2, " %d ", width);

fclose(fp2);

代码应在文件中打印 0.05。但是,它正在打印 -1717986918。

当我将值保存在循环中时,应该在文件中保存 0.05 直到循环运行,但 -1717986918 在循环运行时保存。

谁能帮我?

width是一个浮点变量。

4

2 回答 2

0

正如您在评论中指定的那样,您的width变量是一个浮点数。要打印浮点数,您需要以%f这种方式使用:

fprintf(fp2, " %f ", width);

有关 fprint 格式的更多信息,您可以查看以下参考资料printf 的维基百科页面

于 2021-05-25T10:10:36.557 回答
0

您试图输出width为带有 的整数%d,这会导致这种行为。如果您使用%f,它将正常工作。

于 2021-05-25T09:54:30.353 回答