Использование CTIME в массиве
Я пытаюсь использовать time.h для преобразования времени POSIX во временную структуру, что делает строку удобочитаемой. Строка находится в.bin-файле, который у меня есть. Я понимаю, как использовать его вне функции, такой как
time_t rawtime;
time (&rawtime);
printf ("The current local time is: %s", ctime (&rawtime))
Но я изо всех сил пытаюсь использовать массив, созданный структурой. Вот мой код
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
typedef struct MyStruct_struct{
char FlightNum[7];
char OriginAirportCode[5];
char DestAirportCode[5];
unsigned timestamp;
} Flights;
Flights Order[5000];
int compare (const void *v1, const void *v2)
{
int result;
const Flights *ia = (Flights *)v1;
const Flights *ib = (Flights *)v2;
result = strcmp(ia->OriginAirportCode, ib->OriginAirportCode);
return result;
}
int main()
{
int i=0;
int count = 0;
Flights * File;
FILE * bin;
bin = fopen("acars.bin", "rb");
while (!feof(bin)) {
fread(Order + count, sizeof(Flights), 1, bin);
++count;
}
qsort(Order, count, sizeof(Flights), compare);
for (i = 0; i < 10; i++)
{
time_t fdate = (time_t)Order[i]->timestamp;
printf("%i) %s, %s, %s, %s\n",
i,
Order[i].FlightNum,
Order[i].OriginAirportCode,
Order[i].DestAirportCode,
Order[i].timestamp,
ctime(&fdate));
}
fclose(bin);
return 0;
}
Я получаю следующие ошибки: Ошибка 2: ошибка C2232: '-> отметка времени': левый операнд имеет тип 'struct', используйте '.'
3 IntelliSense: выражение должно иметь тип указателя
Если положить в структуру ctime, я также получаю сообщение об ошибке (как и ожидалось).