C程序读取文件中带e指数的数据
我的数据是这样的,两列,第一列是e指数很小,我想把第一列数写进一个数组里。但是我写的程序无法识别e指数,调试过程中发现碰见e这个字后面的数据就全变成0了。请教大神指点!
-6.880903e-006 0.00325521
-6.876903e-006 0
-6.872903e-006 0.00325521
-6.868903e-006 -0.00325521
-6.864903e-006 0
-6.860903e-006 0
-6.856903e-006 0
#include <iostream>
#include<fstream>
#include<sstream>
int main(int argc, char** argv)
{
FILE *fp=fopen("G:\\uz\\uz\\C3energy00001.txt","r");
FILE *fpp=fopen("G:\\CCC\\z.txt","w+");
double a[3000],b[3000];
int i,flag,line=3000;
char ch;
if(fp==NULL)
printf("error\n");
for(i=1,line=1;;i++)
{
ch=fgetc(fp);
if(ch=='\n')
line+=1;
if(ch==EOF)
break;
}
printf("%d\n",line);
fseek(fp,0L,0);
while(fscanf(fp,"%lf%*c&lf",&a[i],&b[i])!=EOF)
{
a[i]=a[i]*1000000;
i++;
}
for(i=0;i<line;i++)
{
printf("%lf %lf\n",a[i],b[i]);
}
for(i=0;i<line;i++)
{
fprintf(fpp,"%lf \n",a[i],b[i]);
}
fclose(fp);
fclose(fpp);
return 0;
}
输出结果