C 使用atof函数有什么问题?
这是我正在ideone.com上测试的一个简单代码。我得到的输出是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(
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;
}