我正在尝试使用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放入结构中,我也会收到错误(如预期的那样)。