Использование 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, я также получаю сообщение об ошибке (как и ожидалось).

0 ответов

Другие вопросы по тегам