当前位置:  编程技术>c/c++/嵌入式

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

    来源: 互联网  发布时间:2014-10-12

    本文导语:  代码如下:#include #include 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 = (Nod...

代码如下:

#include
#include

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++;
        }
    }
}


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各位高手知道在JAVA中如何用一个名称创建一个对象实例,并调用其方法,注意:在编写代码时并不知要创建的对象的类名,也并不知方法名
  • linux redhat5.6安装oracle11g在自动创建实例时停住不动,有图
  • 在Mysql上创建数据表实例代码
  • C#类的创建与初始化实例解析
  • wince程序防止创建多个实例实现互斥作用
  • C#下实现创建和删除目录的实例代码
  • 动态创建类实例代码
  • PHP创建桌面快捷方式的实例代码
  • 我不信CSDN上没有人会这个!什么创建一个std::iostream的实例?
  • yii实现创建验证码实例解析
  • asp.net 动态创建控件的演示实例
  • C语言创建链表错误之通过指针参数申请动态内存实例分析
  • 如何使用利用RTTI创建的对象实例??
  • 用模板的方式创建守护进程代码实例
  • Java创建文件夹及文件实例代码
  • C#使用GDI+创建缩略图实例
  • 用C和JAVA分别创建链表的实例
  • C#实现文件复制、移动与创建的实例代码
  • Android中使用IntentService创建后台服务实例
  • Oracle物化视图创建实例
  • C++ Bitsets 成员 Constructors:创建新bitsets
  • 菜鸟在c盘装了win2000,想在剩下的空间装Red Hat Enterprise Linux 3,在创建linux分区的时候,不知道都创建什么分区??我知道要创建一个
  • C++ Double Ended Queues(双向队列) 成员 Constructors:创建一个新双向队列
  • 一进程源源不断地创建文件,另一进程把这些创建的文件抓取并挪走
  • C++ I/O 成员 open():创建一个输入流
  • 创建用户组创建用户出错
  • Xcode介绍及创建工程和工程依赖操作步骤
  • 进程创建进程组后,然后创建该组中的进程,然后终止。这里的终止....?
  • HTML5 sprite 样式创建工具Stitches介绍
  • linux如何创建一个共享内存 可以mount 可以创建目录之类 跟硬盘分区一样
  • java Servlet实现Session创建存取以及url重写代码示例


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3