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 里定義的了

原創文章,作者:ETQC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/149416.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ETQC的頭像ETQC
上一篇 2024-11-04 17:52
下一篇 2024-11-05 16:51

相關推薦

發表回復

登錄後才能評論