zoukankan      html  css  js  c++  java
  • c语言链表从本地文件中读取和写入数据

     1 typedef struct Data{
     2  40     char *name;
     3  41     char *IDCARD;
     4  42     char *job_id;
     5  43     char *length;
     6  44     char *education;
     7  45     char *marriage;
     8  46     int local;
     9  47 }Data;
    10  48    
    11  49 typedef struct node{                                             
    12  50     Data *data;
    13  51     struct node *next;
    14  52     struct node *prior;
    15  53 }node;
    16  54      
    17  55 typedef struct doublelist{
    18  56     node *head;
    19  57     node *tail;
    20  58     size_t size;                                                        
    21  59 }doublelist;
    22  60  
     1  void inserttail2(node *newnode)                                         
     2 126 {    
     3 127     if(list->size == 0){
     4 128         list->tail = newnode;
     5 129         list->head = newnode;
     6 130     }  
     7 131     else{
     8 132         newnode->prior = list->tail;
     9 133         list->tail->next = newnode;
    10 134         list->tail = newnode;
    11 135     }  
    12 136     list->size++;
    13 137 }    
    14  void SaveInformation()
    15 380 {   
    16 381     node *temp = list->head;
    17 382     FILE *file = fopen("staff_information.txt","w");//进行追加写
    18 383     if(file == NULL){
    19 384         return;
    20 385     }
    21 386     else{
    22 387         while(temp != NULL){
    23 388             fprintf(file,"%s		",temp->data->name);
    24 389             fprintf(file,"%s		",temp->data->IDCARD);
    25 390             fprintf(file,"%s		",temp->data->job_id);
    26 391             fprintf(file,"%s		",temp->data->length);
    27 392             fprintf(file,"%s		",temp->data->education);
    28 393             fprintf(file,"%s
    
    ",temp->data->marriage);
    29 394             temp = temp->next;
    30 395         }
    31 396         fclose(file);
    32 397     }
    33 398 }   
    34 399     
    35 400 void ReadInformation()
    36 401 {   
    37 402     node *temp = list->head;
    38 403     FILE *file = fopen("staff_information.txt","r");
    39 404     if(file == NULL){
    40 405         return;
    41 406     }
    42 407     else{
    43 408         while(!feof(file)){
    44 409             node *newnode = creat_node();//此函数返回值就为一个新节点,这行代码大家可以不用在意
    45 410             fscanf(file,"%s		",newnode->data->name);
    46 411             fscanf(file,"%s		",newnode->data->IDCARD);
    47 412             fscanf(file,"%s		",newnode->data->job_id);                
    48 413             fscanf(file,"%s		",newnode->data->length);
    49 414             fscanf(file,"%s		",newnode->data->education);
    50 415             fscanf(file,"%s		",newnode->data->marriage);
    51 416             inserttail2(newnode);//t尾插法插入节点
    52 417         }
    53 418         fclose(file);
    54 419     }
    55 420     return;
    56 421 }   

    附上creat_node代码原型

     1 node *creat_node(){
     2  12     node *newnode;
     3  13     newnode = (node *)malloc(sizeof(node));
     4  14     newnode->data = (Data *)malloc(sizeof(Data));
     5  15     if(newnode->data != NULL){
     6  16         newnode->data->name = (char *)malloc(50 *sizeof(char));
     7  17         newnode->data->IDCARD= (char *)malloc(50 *sizeof(char));
     8  18         newnode->data->job_id = (char *)malloc(50 *sizeof(char));
     9  19         newnode->data->length = (char *)malloc(50 *sizeof(char));
    10  20         newnode->data->education = (char *)malloc(50 *sizeof(char));
    11  21         newnode->data->marriage = (char *)malloc(50 *sizeof(char));
    12  22     }
    13  23     newnode->prior = NULL;
    14  24     newnode->next = NULL;
    15  25     return newnode;
    16  26 }//创建一个新结点

    大家照这个模板来就能解决大家的问题,顺式结构其实也几乎一样,希望能帮大家解决问题。

    笨鸟先飞
  • 相关阅读:
    关于Response.End的亦常
    关于web.config
    本地打印机的设置
    xml的操作
    javascript定义对象的几种简单方法
    WindowsXP下共享无线网络设置步骤
    第四章:使用Rich控件
    第五章母版页
    第八章数据访问概述
    对lock(obj)中的obj的理解
  • 原文地址:https://www.cnblogs.com/zoutingrong/p/13057779.html
Copyright © 2011-2022 走看看