利用c语言怎么将文本中的数据存入链表
时间: 2024-03-17 07:40:04 浏览: 128
c语言实现链表的基本操作,链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
首先,需要定义一个链表结构体,如下所示:
```c
typedef struct node {
int data; // 假设存储的是 int 类型的数据
struct node *next;
} Node;
```
然后,需要读取文本文件中的数据,可以使用 C 语言标准库中的 `fopen` 和 `fscanf` 函数,如下所示:
```c
Node *head = NULL; // 链表头指针
Node *tail = NULL; // 链表尾指针
FILE *fp = fopen("data.txt", "r"); // 打开文件
if (fp == NULL) {
printf("Failed to open file!\n");
return 0;
}
int num;
while (fscanf(fp, "%d", &num) != EOF) { // 读取每个数,并将其存储到链表中
Node *node = (Node *) malloc(sizeof(Node));
node->data = num;
node->next = NULL;
if (head == NULL) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
}
fclose(fp); // 关闭文件
```
上述代码中,我们使用 `fscanf` 函数读取文本文件中的数据,如果读取到文件结尾,就退出循环。然后,我们动态申请内存空间,创建一个新的链表节点,并将读取到的数据存储到该节点中。最后,根据链表是否为空,更新链表头指针和尾指针。
需要注意的是,为了避免内存泄漏,需要在程序结束前释放链表中所有节点的内存空间。
阅读全文