为什么读不出 float 型的数。。。。。。。。。。
#include <stdio.h>#include<stdlib.h>
main()
{
FILE *fp;
int N,Hn,Tn,s;
char L,H,T;
float Load[6][4],Gh[6][7],Gt[6][6];
int i,j;
fp=fopen("jingjifenpeishuju.txt","r");//打开文本
if(fp==NULL)
{
printf("cannot find this file\n");
exit(1);
}
fscanf(fp,"%c%d",&L,&N);//读负荷数据
for(s=1; s<N; s++)
{
for(j=1; j<4; j++)
fscanf(fp,"%f",&Load[s][j]);
}
fscanf(fp,"%c",&H);//读水电厂数据
while(H!='H')
fscanf(fp,"%c",&H);
fscanf(fp,"%d",&Hn);
for(i=1; i<=Hn; i++)
{
for(j=1; j<7; j++)
fscanf(fp,"%f",&Gh[i][j]);
}
fscanf(fp,"%c",&T);//读火电厂数据
while(T!='T')
fscanf(fp,"%c",&T);
fscanf(fp,"%d",&Tn);
for(i=1; i<=Tn; i++)
{
for(j=1; j<6; j++)
fscanf(fp,"%f",&Gt[i][j]);
}
fclose(fp);//关闭文本
printf("%c%c%c\n%d%d%d\n%f\n",L,H,T,N,Hn,Tn,&Gt[1][1]);//检验读数是否正确
}
jingjifenpeishuju.txt内容
L 3 0 8 350 8 18 700 18 24 500
H 1 450 90 1.5e7 2 0.8 0.0015
T 1 600 200 3 0.4 0.00035
三行数据分别代表
负荷标识 负荷个数N Load[1][1] Load[1][2] Load[1][3]........Load[s][1] Load[s][2] Load[s][3].....Load[N][1] Load[N][2] Load[N][3]
水电厂标识 水电厂个数Hn Gh[1][1]....Gh[1][6]....Gh[i][6]..........Gh[i][6].......Gh[Hn][6]..........Gh[Hn][6]
火电厂标识 火电厂个数Tn Gt[1][1].....Gt[1][5]....Gt[i][6].....Gt[i][5]......Gt[Tn][6].....Gt[Tn][5]
VC6.0编译输出是
LHT
311
0.000000//为什么不是文本中的600
[ 本帖最后由 hzh5family 于 2014-7-2 21:08 编辑 ]