CTIME在数组中的使用

时间:2015-11-30 00:10:01

标签: c arrays posix 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:' - &gt; timestamp':左操作数有'struct'类型,使用'。'。
3 IntelliSense:表达式必须具有指针类型

如果将ctime放入结构中,我也会收到错误(如预期的那样)。

0 个答案:

没有答案