将txt文件车辆信息读入到链表
时间: 2023-12-24 21:04:00 浏览: 56
读文件到链表
以下是一个示例代码,可以将名为“车辆信息.txt”的文件中的车辆信息读入到链表中:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 20 // 定义字符串数组长度
// 定义车辆信息结构体
struct chexinxi {
char chexinghao[N];
char chepaihao[N];
struct chexinxi *next;
};
// 全局变量,指向车辆信息链表头
struct chexinxi *head = NULL;
// 将车辆信息从文件中读取到链表中的函数
void readFromFile(char *filename) {
FILE *fp = fopen(filename, "r");
if (fp == NULL) {
printf("打开文件失败!\n");
exit(1);
}
char chexinghao[N];
char chepaihao[N];
// 逐行读取文件内容
while (fscanf(fp, "%s %s", chexinghao, chepaihao) != EOF) {
// 创建新的车辆信息结构体,并为其分配内存
struct chexinxi *new_node = (struct chexinxi*)malloc(sizeof(struct chexinxi));
if (new_node == NULL) {
printf("分配内存失败!\n");
exit(1);
}
// 将读取到的车辆信息存入新的结构体中
strcpy(new_node->chexinghao, chexinghao);
strcpy(new_node->chepaihao, chepaihao);
new_node->next = NULL;
// 将新的结构体插入到链表末尾
if (head == NULL) {
head = new_node;
} else {
struct chexinxi *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = new_node;
}
}
fclose(fp);
}
int main() {
char filename[] = "车辆信息.txt";
readFromFile(filename);
// 遍历链表,输出所有车辆信息
struct chexinxi *p = head;
while (p != NULL) {
printf("%s %s\n", p->chexinghao, p->chepaihao);
p = p->next;
}
return 0;
}
```
这个示例代码中,定义了一个名为“chexinxi”的结构体,用于存储车辆信息。在`readFromFile`函数中,通过逐行读取文件内容的方式,将每一辆车的车型号和车牌号读取到两个字符串数组中,然后创建新的车辆信息结构体,并为其分配内存。接着,将读取到的车型号和车牌号存入新的结构体中,并将新的结构体插入到链表末尾。
在`main`函数中,调用`readFromFile`函数将文件中的车辆信息读入到链表中,然后遍历链表,输出所有车辆信息。
阅读全文