c语言用文件加载链表的代码
时间: 2023-08-22 17:02:37 浏览: 144
在C语言中,我们可以使用文件来加载链表的数据。下面是一个简单的例子,演示了如何使用文件加载链表的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点
typedef struct Node {
int data;
struct Node* next;
} Node;
// 读取文件数据到链表
void loadListFromFile(Node** head, const char* filename) {
// 打开文件
FILE* file = fopen(filename, "r");
if (file == NULL) {
printf("无法打开文件 %s\n", filename);
return;
}
int value;
while (fscanf(file, "%d", &value) != EOF) {
// 创建新节点
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
newNode->next = NULL;
// 将新节点添加到链表
if (*head == NULL) {
*head = newNode;
} else {
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
}
// 关闭文件
fclose(file);
}
// 打印链表
void printList(Node* head) {
Node* current = head;
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
printf("\n");
}
int main() {
Node* head = NULL; // 链表头指针
const char* filename = "data.txt"; // 文件名
loadListFromFile(&head, filename);
printf("加载后的链表: ");
printList(head);
return 0;
}
```
这段代码首先定义了链表节点的结构体,其中包含了一个整数类型的数据和一个指向下一个节点的指针。然后,通过`loadListFromFile`函数来读取指定文件中的数据,并将数据存储到链表中。在函数中,我们使用`fopen`函数打开文件,然后使用`fscanf`函数逐行读取文件中的整数数据,并将其存储到新创建的链表节点中。最后,使用`fclose`函数关闭文件。
在`main`函数中,我们通过调用`loadListFromFile`函数来加载文件中的数据,并将结果保存在链表中。然后,我们调用`printList`函数来打印链表中的数据。请确保文件`data.txt`包含一些整数数据,每个整数占据一行。
将以上代码保存到一个源文件中,编译并运行后,就可以实现从文件加载链表的功能了。
阅读全文