金田一
2003-04-13, 12:51 PM
請問各位高手:我想要把筆記本的數字讀到vc上.筆記本的資料是:36.25, 27.3, -35.2, 0 ,27, -3.14, 24.87, 9.14, 5.82, 154.8, E讀到E停上並算出共有若干組數字, 以下是我打的程式:
#include<stdio.h>
#include<stdlib.h>
void main(void)
{
float ch1,sum=0;
char n,number=0;
char ch2,ch3;
FILE *fp1;
FILE *fp2;
fp1=fopen("hw1.txt","r");
fp2=fopen("ans1.txt","w");
for (n=-1;n<number;n++)
{
fscanf(fp1,"%s\n",&ch2);
printf("ch2:%s\n",ch2);
ch1=atof(&ch2);
{
if(ch1>0)
{
sum=sum+ch1;
}
if ((ch3=fgetc(fp1)!='E')
number=number+1;
}
}
fprintf(fp2,"number=%d",number);
fprintf(fp2,"sum=%f",sum);
fclose(fp1);
fclose(fp2);
}
營幕上列出ch2:36.25 7.3 35.2 27 3.14 4.87 .14 .82 54.8
但正確的ch2是:36.25 27.3 0 -35.2 27 -3.14 24.87 9.14 5.82 154.8 E
為什麼ch2讀出來不對??
執行結果:number=1sum=169.52
但真正結果:number=10sum=285.18000
贊助商連結
#include<stdio.h>
#include<stdlib.h>
void main(void)
{
float ch1,sum=0;
char n,number=0;
char ch2,ch3;
FILE *fp1;
FILE *fp2;
fp1=fopen("hw1.txt","r");
fp2=fopen("ans1.txt","w");
for (n=-1;n<number;n++)
{
fscanf(fp1,"%s\n",&ch2);
printf("ch2:%s\n",ch2);
ch1=atof(&ch2);
{
if(ch1>0)
{
sum=sum+ch1;
}
if ((ch3=fgetc(fp1)!='E')
number=number+1;
}
}
fprintf(fp2,"number=%d",number);
fprintf(fp2,"sum=%f",sum);
fclose(fp1);
fclose(fp2);
}
營幕上列出ch2:36.25 7.3 35.2 27 3.14 4.87 .14 .82 54.8
但正確的ch2是:36.25 27.3 0 -35.2 27 -3.14 24.87 9.14 5.82 154.8 E
為什麼ch2讀出來不對??
執行結果:number=1sum=169.52
但真正結果:number=10sum=285.18000
贊助商連結