1.fscanf()参数“%lf”-->double,并且注意各个参数中的间距同文本中数据的间距相同。
2.double一定要初始化,否则程序中签字的bug.
3.double和float型:float 为单精度,有效数字为6~7double 为双精度,有效数字为15~16 但他们在输出时,小数点后都有6位小数。所以输出时只有格式化输出才会显示全部.
例子:
#include <stdio.h>
int main()
{
double data[3];//初始化
data[0]=1.0;
data[1]=2.0;
data[2]=3.0;
FILE *fp;
if((fp=fopen("E://data.txt","r"))==NULL) /* 打开一个由argv[1] 所指的文件*/
{
printf("not open");
return 0;
}
fscanf(fp,"%lf %lf %lf",&data[0],&data[1],&data[2]);
//文本中数据的格式也为1.232434 2.24124234 1.232323
printf("%.10lf,%.10lf,%.10lf",data[0],data[1],data[2]);
fclose(fp);
getchar();
return 1;
}
最终输出为:1.232434 0000,2.2412423400,1.2323230000