无法输入双倍。为什么?

时间:2016-05-07 19:30:29

标签: c double

我无法将双精度扫描到变量。

这是我的代码,很简单。我用命令构建它:

gcc -Wall -Wextra -Wpedantic -ansi -c double.c

#include <stdio.h>
int main() {
    double f;
    scanf("%lf", &f);
    printf("%lf\n", f);
    return 0;
}

输入:5.5(或任何其他数字)

输出:0(始终)

我正在使用(GCC)4.9.3。

1 个答案:

答案 0 :(得分:1)

阅读编译器警告并修复它。

~$ gcc -Wall -Wextra -Wpedantic -ansi -c mydouble.c 
mydouble.c: In function ‘main’:
mydouble.c:5:12: warning: ISO C90 does not support the ‘%lf’ gnu_printf format [-Wformat=]
     printf("%lf\n", f);

您可以更改编译器标志或更改代码。

#include <stdio.h>
int main() {
    double f;
    scanf("%lf", &f);
    printf("%f\n", f);
    return 0;
}