C语言读文件的问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 22:11:46
最近编了一个有关神经网络的C程序,由于需要输入大量的数据,所以想采用读文件的办法输入数据。我编的程序能正确打开文件,却读不到数据。

程序:
FILE *tset;
FILE *fset;
int i,j;
if((tset=fopen("E:\\training.dat","r"))==NULL)
{printf("can not open the training file!\n");

}
if((fset=fopen("E:\\forecast.dat","r"))==NULL)
{printf("can not open the forecast file!\n");

}
for(i=0;i<tepnum;i++)
{fscanf(tset,"%f,%f,%f,%f",&tin[i][0],&tin[i][1],&tin[i][2],&ttp[i][0]);
}
fclose(tset);
for(i=0;i<fepnum;i++)
{fscanf(fset,"%f,%f,%f",&fin[i][0],&fin[i][1],&fin[i][2]);
}
fclose(fset);

数据是这么写的:
3.6010,0.0481,0.0481,0.85
4.8723,0.0589,0.1422,-0.96
2.6400,0.0645,0.0645,0.52
3.6645,0.1706,0.1706,-0.02
5.4100,0.2504,0.2504,-0.55
11.7735,0,0.7038,-7.02
………………

这个问题怎么解决啊?谢谢大家了

可能是你控制读数的循环变量: tepnum
的值小于等于0了,没有读到数据,我给你的程序如下,
你可以把你的程序中tepnum先用常数代替,
测试一下
===================================
#include <stdio.h>
#include <errno.h>

int main(int argc,char ** argv)
{
FILE * fp1;
FILE * fp2;
float f_data[4];
int i;

if(NULL==(fp1=fopen("d:\\temp\\data1.txt","r")))
{
printf("Open file 1 error:[%s]\n",strerror(errno));
return 1;
}

if(NULL==(fp2=fopen("d:\\temp\\data2.txt","r")))
{
printf("Open file 2 error:[%s]\n",strerror(errno));
return 1;
}

printf("Open file(s) successfull!\n");

printf("Get data from file 1 : \n");
for(i=1;i<=3;i++)
{
fscanf(fp1,"%f,%f,%f,%f", &f_data[0],
&f_data[1],
&f_data[2],