小编use*_*009的帖子

使用c中的scanf读取double值

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

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

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

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

c scanf conversion-specifier

41
推荐指数
2
解决办法
24万
查看次数

标签 统计

c ×1

conversion-specifier ×1

scanf ×1