本文目录一览:
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 里定义的了