目前正在尝试用 C 编写程序来读取 .bin 文件。正如您在我的代码中看到的那样,我显然遗漏了一些东西,我尝试阅读了很多内容,但仍然完全卡住了。正如预期的那样,我的输出不是预期的。我预期的输出示例是 YV2840 KLT KDAB Thu Jan 16 12:44:00 2014
因为我正在尝试阅读有关航空公司航班的 .bin 文件。我认为它可能是错误的原因如下。
我应该定义一个名为“人类可读的日期字符串”的结构。这当然是不可能的,因为它会产生编译器错误。也许我不应该从字面上理解它,因为现在我将它定义为“时间戳”。
顺序和大小与写入文件的格式不匹配。
这是 bin 文件,如果有人感兴趣:http : //www.filedropper.com/acars 这是我的代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct MyStruct_struct {
int FlightNum[7];
char OriginAirportCode[5];
char DestAirportCode[5];
int TimeStamp;
} MyStruct;
int main() {
FILE * bin;
MyStruct myStruct;
bin = fopen("acars.bin", "rb");
while(1) {
fread(&myStruct,sizeof(MyStruct),1,bin);
if(feof(bin)!=0)
break;
printf("%d",myStruct.FlightNum);
printf("%s" ,myStruct.OriginAirportCode);
printf("%s" ,myStruct.DestAirportCode);
printf("%d", myStruct.TimeStamp);
}
fclose(bin);
return 0;
}
Run Code Online (Sandbox Code Playgroud)