不要在C中将输入和输出值作为double类型

时间:2016-05-13 02:14:17

标签: c scanf

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

我收到输出0.000000 - 为什么? - 但是相同的代码在C程序中获得输入和输出double。使用float类型,代码在C ++中工作。我使用过GNU gcc编译器。

1 个答案:

答案 0 :(得分:2)

printf %lf不存在。 在scanf它确实如此。 (见specifiers x length表)

许多操作系统接受printf中的%lf是一致的,但Windows不是其中之一。

所以你必须扫描%lf,但是printf %f,它应该适用于所有地方。