【发布时间】:2021-08-13 13:16:46
【问题描述】:
我正在编写需要进行调试的 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 是一个浮点变量。
【问题讨论】:
-
请发minimal reproducible example 并且不要标记 c 和 c++ 除非你真的同时使用这两种语言,它们是不同的语言
-
你的
%d说参数是int,但它不是。使用错误的格式规范会导致未定义的行为。 -
@molbdnilo 是的!它是浮动的。你能告诉它是什么吗?
-
阅读一些关于格式字符串的文档。
-
@molbdnilo,是的,明白了,谢谢。