本文目錄一覽:
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 里定義的了
原創文章,作者:ETQC,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/149416.html