-1.6961842e+00   9.0363699e-01  -2.1875500e+00  -4.5921259e-01   5.6124110e-01            9.0363699e-01   1.3206571e-01  -4.5921259e-01   5.6124110e-01  -1.3800562e-01  上面是example.asc文件中的2行内容,用如下方法尝试进行读取:
double data[2][5];
FILE *fp = fopen( "F:\\example.asc", "r" 
if( fp == NULL && fp_labels == NULL )
return;
         int n = 0;
while(!feof(fp) )
{
fscanf(fp,"%f   %f   %f   %f   %f",
breast_cancer_train_data_1[n][0],
breast_cancer_train_data_1[n][1],
breast_cancer_train_data_1[n][2],
breast_cancer_train_data_1[n][3],
breast_cancer_train_data_1[n][4]);
                   n++;
          }
编译和连接都通过了,但是执行的时候报错 :"Access Voilation."向大家请教到底怎么回事? 最好能够附上源代码。谢谢!!!

解决方案 »

  1.   

    发贴写错了,下面的循环是:
    fscanf(fp,"%f   %f   %f   %f   %f",
    example[n][0],
    example[n][1],
    example[n][2],
    example[n][3],
    example[n][4]);
      

  2.   

    1、调试看看n是否大于1;
    2、fscanf里面的参数用简单变量,而不用数组元素。
    3、试试
    fscanf(fp,"%f   %f   %f   %f   %f",
    &example[n][0],
    &example[n][1],
    &example[n][2],
    &example[n][3],
    &example[n][4]);
      

  3.   

    1, n的确是增加的,也就是说,的确将文件中所有元素尝试着读入;
    2,按照“太平洋”的方法,最后读入的所有元素都是-9.2559631349318e+061 !!!
    困惑中~  难道fscanf的用法不对?!!!
    请再次给予帮助,谢谢!!!
      

  4.   

    double aa1,aa2,aa3,aa4,aa5;
    fscanf(fp,"%lf   %lf   %lf   %lf   %lf\n",
    &aa1,
    &aa2,
    &aa3,
    &aa4,
    &aa5);
      

  5.   

    double aa1,aa2,aa3,aa4,aa5;
    fscanf(fp,"%le %le %le %le %le\n",
    &aa1,
    &aa2,
    &aa3,
    &aa4,
    &aa5);
      

  6.   

    Perfect!
    Thank you very much!!!