typedef struct CustomerNode { char name[10]; int clientTickets; char identification[20]; int rank; CustomerNode *next; } CustomerNode, *CusLinkList; typedef struct Flight { char startPoint[20]; char destination[20]; char flightCodeID[20]; char planeNum[20]; char day[20]; int totalTickets; int left; int leftEconomicTicket; int leftBusinessTicket; Flight *next; CusLinkList cusLinkList; LinkQueue waitQueue1; LinkQueue waitQueue2; } Flight, FlightNode, *PFlight; 用c语言实现该结构体的文件读写操作
时间: 2024-02-25 22:59:07 浏览: 44
文件读写操作可以使用标准库中的fread和fwrite函数进行实现。
首先,我们需要定义一个Flight类型的指针数组,用于存储从文件中读取的所有航班信息。在读取文件时,可以使用fread函数将文件中的数据读取到该数组中。读取完成后,可以对该数组中的每个元素进行处理,例如打印或修改航班信息。
写入文件时,可以使用fwrite函数将Flight类型的指针数组中的数据写入到文件中。写入完成后,可以使用fclose函数关闭文件。
以下是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct CustomerNode {
char name[10];
int clientTickets;
char identification[20];
int rank;
struct CustomerNode *next;
} CustomerNode, *CusLinkList;
typedef struct Flight {
char startPoint[20];
char destination[20];
char flightCodeID[20];
char planeNum[20];
char day[20];
int totalTickets;
int left;
int leftEconomicTicket;
int leftBusinessTicket;
struct Flight *next;
CusLinkList cusLinkList;
//LinkQueue waitQueue1;
//LinkQueue waitQueue2;
} Flight, FlightNode, *PFlight;
int main() {
FILE *fp;
PFlight flights[10];
int i, j, n;
// 读取文件
fp = fopen("flights.dat", "rb");
if (fp == NULL) {
printf("无法打开文件\n");
exit(1);
}
// 读取航班信息
n = fread(flights, sizeof(PFlight), 10, fp);
printf("读取到%d条航班信息:\n", n);
for (i = 0; i < n; i++) {
printf("航班%d: %s -> %s\n", i+1, flights[i]->startPoint, flights[i]->destination);
}
fclose(fp);
// 修改航班信息
strcpy(flights[0]->startPoint, "New York");
strcpy(flights[0]->destination, "London");
// 写入文件
fp = fopen("flights.dat", "wb");
if (fp == NULL) {
printf("无法打开文件\n");
exit(1);
}
// 写入航班信息
fwrite(flights, sizeof(PFlight), n, fp);
fclose(fp);
return 0;
}
```
阅读全文