2D массив получает неправильное значение - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь получить значения в массив 2D float из файла. Все работает нормально, за исключением того, что data[c][6] равно data[c+1][0], когда я его распечатываю. Вот код:

while(!feof(fp)){
    for (int c = 0; c < 2000; c++){
        fscanf(fp,"%s",str);
        sscanf(str," %[^,] %*c %[^,] %*c %[^,] %*c %f %*c %f %*c %f %*c %[^,] %*c %f %*c",names[c],temp2,temp3,&data[c][2],&data[c][3],&data[c][4],global,&data[c][6]);
        //in file values seperated by ',' this is why I use this.//
        if(check_duplication(temp2,genres,12) != 1){ 
            strcpy(genres[i],temp2);
            i ++;
        }

        if(check_duplication(temp3,platforms,10) != 1){
            strcpy(platforms[x],temp3);
            x ++;
        }

        data[c][0] = find_string(temp2,genres,12); //take the location of genres and platforms.//
        data[c][1] = find_string(temp3,platforms,10);
        data[c][5] = strtod(global, &temp);
    }
}

Вот некоторые из моих выводов:

1996) 8,00 5,00 2005,00 0,04 0,01 0,05 5,00

1997) 5,00 5,00 2005,00 0,19 0,07 0,26 3,00

1998) 3,00 6,00 2005,00 0,19 0,05 0,24 3,00

1999) 3,00 6,00 2005,00 0,05 0,01 0,07 0,00

2000) 0,00 6,00 2005,00 0,26 0,07 0,00 11,00

2001) 11,00 0,00 2005,00 0,00 0,02 0,02 8,30

Как видно, напечатанные значения для data[1996][6] и data[1997][0] совпадают. data[c][0] - правильные значения, но data[c][6] - не то, что я хочу.

Когда я печатаю с printf("%f",&data[c][6]) в l oop, это дает правильное значение, но когда я печатаю весь массив, значения неверны.

...