gpt4 book ai didi

c - 在c中,要求扫描点后的1位数字并得到乱码

转载 作者:行者123 更新时间:2023-11-30 21:20:07 24 4
gpt4 key购买 nike

我希望在 FP 之后以 1 位精度扫描 float 。

这是测试代码:

#include <stdio.h>

void main()
{
float f;

scanf("%.1f",&f);
printf("%f",f);
}

我输入了 1.234,希望看到 1.2,但结果却是我看到这个奇怪的结果: -107374176.000000

运行VS2010,有什么解决办法吗?

最佳答案

它会打印随机数,因为对 scanf 的调用失败,并且您正在打印未初始化的变量。

浮点精度规范仅适用于对printf的调用,不适用于scanf。您提供的格式说明符根本无效。

如果您检查 scanf 的返回值,您就会知道调用失败,该值等于成功转换的格式说明符的数量。

如果您想要数字的特定精度,则需要完整阅读它,然后执行截断/舍入操作。

关于c - 在c中,要求扫描点后的1位数字并得到乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42879595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com