int k;
float regionID;
int t;
char string[100];
float avgTemp,totalTemp;
for(k = 0; k < MAX_STATIONS; k++){
if (fgets(string, sizeof(string), fp) == 0){
break;
}
fscanf(fp,"%d %f %d %d %d %d %d %f %f %f", &stationInfo[k].stationID, &stationInfo[k].temperature, &stationInfo[k].year, &stationInfo[k].month, &stationInfo[k].day, &stationInfo[k].hour, &stationInfo[k].minute, &stationInfo[k].location.latitude, &stationInfo[k].location.longitude, ®ionID);
printf("%d %1.2f %d %d %d %d %d %f %f\n", stationInfo[k].stationID, stationInfo[k].temperature, stationInfo[k].year, stationInfo[k].month, stationInfo[k].day, stationInfo[k].hour, stationInfo[k].minute, stationInfo[k].location.latitude, stationInfo[k].location.longitude);
}
Итак, моя программа читает мой файл почти идеально, но он не будет читать первую строку моего файла. Кто-нибудь знает, что может вызвать эту проблему и как я могу ее исправить?fscanf читает все, кроме первой строки
Мы можем сказать вам, что если вы покажете нам свой файл. – zubergu
Потому что вы вызываете 'fgets()' перед вызовом 'fscanf()', и он читает первую строку. – Barmar
На самом деле, поскольку вы делаете это каждый раз через цикл, ваша программа только вызывает 'fscanf()' на четных строках в файле. – Barmar