亲宝软件园·资讯

展开

创建链表并将信息存储在二进制文件中读取 C 创建链表并将信息存储在二进制文件中读取的实例代码

人气:0
想了解C 创建链表并将信息存储在二进制文件中读取的实例代码的相关内容吗,在本文为您仔细讲解创建链表并将信息存储在二进制文件中读取的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:链表,二进制,文件,读取,下面大家一起来学习吧。

复制代码 代码如下:

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

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

void getInfo(Node * node);
int printNodes(Node *node);
void saveToFile(Node * node, char * filename);
void readFromFile(char * filename, int n);

Node nodes[20];
int main() {
    Node *first = (Node *) malloc(sizeof(Node));
    first->data = 1;
    first->next = NULL;
    getInfo(first);
    int numbers = printNodes(first);
    saveToFile(first, "D:/123123");
    readFromFile("D:/123123", numbers);
    return 1;
}

void getInfo(Node * node) {
    Node *last = node;
    char ch = 0;
    while ((ch = getchar()) != 'x') {
        Node *newNode = (Node *) malloc(sizeof(Node));
        newNode->data = ch - 'a';
        newNode->next = NULL;
        last->next = newNode;
        last = newNode;
    }
}

int printNodes(Node * node) {
    int i = 1;
    Node *p = node;
    while (p != NULL ) {
        printf("%d,", p->data);
        p = p->next;
        i++;
    }
    return i;
}

void saveToFile(Node * node, char * filename) {
    Node *p = node;
    FILE *fp;
    if ((fp = fopen(filename, "wb")) == NULL ) {
        return;
    } else {
        while (p != NULL ) {
            fwrite(p, sizeof(Node), 1, fp);
            p = p->next;

        }
    }
    fclose(fp);
}

void readFromFile(char * filename, int n) {
    int i = 1;
    FILE *fp;
    if ((fp = fopen(filename, "rb")) == NULL ) {
        return;
    } else {
        while (i < n) {
            Node *newNode = (Node *) malloc(sizeof(Node));
            fread(newNode, sizeof(Node), 1, fp);
            printf("--%d,",newNode->data);
            i++;
        }
    }
}

加载全部内容

相关教程
猜你喜欢
用户评论