Мне нужно прочитать этот CSV-файл
565;4;6;8;11/10/2017;11:30
756;5;9;1;12/12/2017;10:40
765;-8;-2;-1;06/01/2018;23:23
И мне нужно поместить эти данные в эту структуру
typedef struct {
int cod_event;
int x;
int y;
int z;
int day;
int month;
int year;
int hour;
int minute;
}Eventi_astronomici;
Это инициализированный и перераспределенный массив с правильными размерами,Итак, я знаю размер моего файла, мне просто нужно заполнить этот массив этими целыми числами
Eventi_astronomici *all_data_astro;
all_data_astro = calloc( 200 , sizeof(Eventi_astronomici));
if (all_data_astro == NULL)
{
printf("Malloc failed1!\n");
return -1;
}
char c;
for (c = getc(file_ptr); c != EOF; c = getc(file_ptr))
if (c == '\n') // Increment count if this character is newline
count = count + 1;
printf("%d\n", count);
all_data_astro = realloc( all_data_astro , count * sizeof( Eventi_astronomici));
if (all_data_astro == NULL)
{
printf("Realloc failed!\n");
return -1;
}
Вот что я пытаюсь получить от файла, прежде чем перематывать файл ptr.Затем я печатаю свой массив, чтобы увидеть, сработал ли fscanf
for( i = 0 ; i < count ; i++){
fscanf(file_ptr , "%d;%d;%d;%d;%d/%d/%d;%d:%d" ,&all_data_astro[i].cod_event, &all_data_astro[i].x ,
&all_data_astro[i].y,&all_data_astro[i].z,&all_data_astro[i].day ,
&all_data_astro[i].month,&all_data_astro[i].year,&all_data_astro[i].hour,&all_data_astro[i].minute );
}
for (i = 0; i < count; i++) {
printf("%d,%d,%d,%d,%d/%d/%d,%d:%d\n",all_data_astro[i].cod_event, all_data_astro[i].x ,
all_data_astro[i].y,all_data_astro[i].z,all_data_astro[i].day ,
all_data_astro[i].month,all_data_astro[i].year,all_data_astro[i].hour,all_data_astro[i].minute);
}
, хотя странно, что даже если fscanf не работает, я не получаю никакой печати.Таким образом, программа, вероятно, блокируется, прежде чем даже достигнет следующего цикла for, возможно, мне нужно проверить возвращаемое значение fscanf в if?