Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用atof函数有什么问题?_C_Atof - Fatal编程技术网

C 使用atof函数有什么问题?

C 使用atof函数有什么问题?,c,atof,C,Atof,这是我正在ideone.com上测试的一个简单代码。我得到的输出是 int main() { char str[10]="3.5"; printf("%lf",atof(str)); return 0; } 可能是 您没有包括stdlib.h。添加适当的内容包括: -0.371627 #包括 #包括 int main() { char str[10]=“3.5”; printf(“%lf”,atof(str)); 返回0; } 如果不包括stdlib.h,atof(

这是我正在ideone.com上测试的一个简单代码。我得到的输出是

int main()
{
    char str[10]="3.5";
    printf("%lf",atof(str));
    return 0;
}

可能是

您没有包括stdlib.h。添加适当的内容包括:

-0.371627
#包括
#包括
int main()
{
char str[10]=“3.5”;
printf(“%lf”,atof(str));
返回0;
}

如果不包括stdlib.h,
atof()
是隐式声明的,编译器假定它返回一个int。

oth,看起来
%lf
只适用于C99的
printf()
,而不适用于C89的。谢谢,这是错误。虽然我以前从没听说过,什么?是否需要包含标题或启用所有警告以查看编译器可以发现的潜在问题?因此,这是正确的答案。。。但是有人能解释为什么C允许我调用一个不存在的函数吗?@AlexeyFrunze:一点也不
%lf
对于打印
double
非常合适。不,
%lf
是double的正确说明符,这没有问题。这就是为什么的原因
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char str[10]="3.5";
    printf("%lf",atof(str));
    return 0;
}