您的位置:

c语言atof转换错误,atof转换出错

本文目录一览:

c语言,关于atof()函数

没问题啊,

给你一个程序确认一下:

#include stdlib.h

#include stdio.h

int main(void)

{

char *str="83.840";

double l=atof(str);

printf("string = %s ,double = %lf\n", str, l);

return 0;

}

输出结果:

string = 83.840 ,double = 83.840000

用C语言将文本文件中数据存入数组,使用atof出错?

加个#include conio.h //getch()头文件,就没错误了

#include stdio.h

#include math.h

#include string.h

#include stdlib.h

#include conio.h //getch()头文件

void main()

{

FILE *fp;

char *bufs[4],*bu[2];

float b[64];

char *p,*q;

int i,j,k;

fp=fopen("a1.txt","rb");

//读入字符串

for(i=0;i4;i++)

fgets(bufs[i],56,fp);

//第一行字符串分离

p=bufs[0];

q=strtok(p,",");

j=0;

while(q!=NULL)

{

bu[j]=q;

printf("%s\n",bu[j]);

getch();

j++;

q=strtok(NULL,",");

}

//字符转换为实数,这一步出错

for(k=0;k2;k++)

{ b[k]=atof(bu[k]);

printf("%f\n",b[k]);

getch();

}

fclose(fp);

}

C语言atof问题

这样:

#include stdio.h

#include stdlib.h

int main()

{

double a;

char *b = "123";

a = atof(b);

printf("%lf\n", a);

return 0;

}

C语言中atof()的应用应该注意什么问题?

“而且用atoi()居然能够正确转换出整数部分!”

看来楼主不知道atoi()的工作原理,它是遇到非数字就返回,所以就算你给的是 "12345sdfjklsdjfl" 它也能转换....

1楼的没看自己的源码吧,在调用_fltin2()而已

return( *(double *)(_fltin2( fltstruct, nptr, (int)strlen(nptr), 0, 0, _loc_update.GetLocaleT())-dval) ); //看这句...

至于_fltin2()是怎么实现的就不知道了

不过肯定是在 fltintrn.h 里定义的了