C atof将字符串读取为0

C atof将字符串读取为0,c,atof,C,Atof,我想我只是愚蠢(我都试过了)。帮我离开这里: #include <stdio.h> #include <string.h> int main() { const char * y = "747.0"; double x; x = atof(y); printf("%.5f\n",x); printf("%e\n",x); return 0; } 您需要包含stdlib.h才能提供atof()原型,如果没有合适的原型,编译器

我想我只是愚蠢(我都试过了)。帮我离开这里:

#include <stdio.h>
#include <string.h>
int main()
{
    const char * y = "747.0";
    double x;
    x = atof(y);
    printf("%.5f\n",x);
    printf("%e\n",x);
    return 0;
}

您需要包含
stdlib.h
才能提供
atof()
原型,如果没有合适的原型,编译器将假定其返回值为
int

尝试包含stdlib.h,因为我认为这是您在C中为atoi所需的包。

这就是为什么建议启用所有警告的原因
0.00000
0.000000e+00