Я пытаюсь получить значения в массив 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, это дает правильное значение, но когда я печатаю весь массив, значения неверны.