gpt4 book ai didi

c - 在c中使用scanf读取 double 值

转载 作者:行者123 更新时间:2023-11-30 16:07:09 25 4
gpt4 key购买 nike

我尝试在C中使用scanf()读入2个值,但系统写入内存的值与我输入的值不相等。这是代码:

double a,b;
printf("--------\n"); //seperate lines
scanf("%ld",&a);
printf("--------\n");
scanf("%ld",&b);
printf("%d %d",a,b);

如果我输入 1 和 2,CMD 返回正确的值,但 b = -858993460 这是我已经尝试过的:使用 float 或 int 而不是 double,使用 scanf_s,使用 scanf("%d 或 %f for %i 或 %li 或 %lf 或 %e 或 %g ),使用 fflush(stdin) 清除键盘缓冲区,在 b 中读取首先,尝试了所有可能的组合。我发现32位操作系统上double的长度有问题,所以你被迫使用scanf("%lf", &f)来读入double。不管怎样我所做的,第二个值总是错误的。

我在 Windows 7 32 位操作系统上使用 MS VS Express 2012 for Desktop。

最佳答案

使用 %lf 格式说明符读取 double 值:

double a;
scanf("%lf",&a);

维基百科有一个decent reference获取可用的格式说明符。

您还需要使用 %lf 格式说明符来打印结果:

printf("%lf %lf",a,b);

关于c - 在c中使用scanf读取 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59747021/

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