亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c語言怎么從文件讀取數據到鏈表

小億
427
2023-12-07 04:37:18
欄目: 編程語言

要從文件讀取數據到鏈表,需要按照以下步驟進行操作:

  1. 打開文件:使用fopen函數打開文件,返回一個文件指針。
FILE *fp;
fp = fopen("filename", "r");
if (fp == NULL) {
    printf("文件打開失敗\n");
    return;
}
  1. 創建鏈表節點結構體:根據需要創建一個鏈表節點的結構體,包含需要存儲的數據和指向下一個節點的指針。
typedef struct Node {
    int data;  // 假設存儲整數數據
    struct Node *next;
} Node;
  1. 定義鏈表頭節點:創建一個指向鏈表頭部的指針,并初始化為NULL。
Node *head = NULL;
  1. 讀取文件內容:使用fscanf函數逐行讀取文件內容,并將讀取到的數據存儲到鏈表節點中。
int num;
while (fscanf(fp, "%d", &num) != EOF) {
    // 創建新的節點并存儲數據
    Node *newNode = (Node*)malloc(sizeof(Node));
    newNode->data = num;
    newNode->next = NULL;

    // 將新節點插入鏈表
    if (head == NULL) {
        head = newNode;
    } else {
        Node *temp = head;
        while (temp->next != NULL) {
            temp = temp->next;
        }
        temp->next = newNode;
    }
}
  1. 關閉文件:使用fclose函數關閉文件。
fclose(fp);

完整的代碼示例:

#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
    int data;
    struct Node *next;
} Node;

int main() {
    FILE *fp;
    fp = fopen("filename", "r");
    if (fp == NULL) {
        printf("文件打開失敗\n");
        return 0;
    }

    Node *head = NULL;
    int num;
    while (fscanf(fp, "%d", &num) != EOF) {
        Node *newNode = (Node*)malloc(sizeof(Node));
        newNode->data = num;
        newNode->next = NULL;

        if (head == NULL) {
            head = newNode;
        } else {
            Node *temp = head;
            while (temp->next != NULL) {
                temp = temp->next;
            }
            temp->next = newNode;
        }
    }

    fclose(fp);

    // 遍歷鏈表并輸出
    Node *temp = head;
    while (temp != NULL) {
        printf("%d ", temp->data);
        temp = temp->next;
    }

    // 釋放鏈表內存
    temp = head;
    while (temp != NULL) {
        Node *next = temp->next;
        free(temp);
        temp = next;
    }

    return 0;
}

注意:上述代碼中的filename應為待讀取的文件名,需要根據實際情況進行修改。另外,為了確保內存的釋放,需要遍歷鏈表并逐個釋放節點的內存空間。

0
四平市| 新巴尔虎右旗| 卢湾区| 都昌县| 婺源县| 天镇县| 榆中县| 基隆市| 彰化县| 黔西| 宣威市| 巴彦县| 仁怀市| 洪江市| 兴文县| 保靖县| 丘北县| 杭锦后旗| 乡城县| 连山| 鄂伦春自治旗| 岳普湖县| 濉溪县| 米泉市| 若羌县| 南开区| 沛县| 新沂市| 巫山县| 揭西县| 西乡县| 广元市| 瑞昌市| 铜山县| 滦南县| 叶城县| 略阳县| 河池市| 凉城县| 屏山县| 晋州市|