首页 > 其他 > 详细

从文件里读数据到屏幕

时间:2014-04-07 06:23:03      阅读:500      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
#include"food.h"


int main(void)
{

    food_pnode h;

    foodlist_init(&h);
    foodlist_read(h);
    foodlist_show(h);
    
    return 0;
}

void  foodlist_init(food_pnode *H)
{
        *H=(food_pnode)malloc(sizeof(food_node));
        if(NULL==*H){
            printf("malloc error\n");
            exit(-1);
        }
        INIT_LIST_HEAD(&(*H)->list);
}


void foodlist_creat(food_pnode h,food_node food_menu)
{
    food_pnode new;
        new=(food_pnode)malloc(sizeof(food_node));
        if(NULL==new){
            printf("malloc error!\n");
            exit(-1);
        }

        *new=food_menu;
        list_add_tail(&new->list,&h->list);
    

}
void foodlist_read(food_pnode h)
{
    FILE *fp;
    food_node food_menu;
    int n=0;
    char buf[150];
    fp=fopen("food.dat","r");
    if(fp==NULL){
    printf("open error\n");
    exit(-1);
    }
    
    while(fgets(buf,1024,fp))
    n++;    

    fseek(fp,0,SEEK_SET);
    while(n--)
{       
    fscanf(fp,"%d%s%d",&food_menu.number,food_menu.name,&food_menu.price);
    foodlist_creat(h,food_menu);

}
    fclose(fp);

}
void foodlist_show(food_pnode h)
{
    struct list_head *pos,*n;
    food_pnode p;
    
    list_for_each_safe(pos,n,&(h->list))
    {
    p=list_entry(pos,food_node,list);
    printf("%d\t%s\t%d\t\n",p->number,p->name,p->price);

    }


}
bubuko.com,布布扣

思路:1.内核链表初始化,创建一个内核链表类型的头结点

      INIT_LIST_HEAD(&(*H)->list);

     2.打开文件fp=fopen("food.dat","r");

         3.创建一个结构体   接受文件读出来的每行

           food_node food_menu;

         4.计算行数

         while(fgets(buf,1024,fp))
         n++;

         5.定位到文件开头

   fseek(fp,0,SEEK_SET);

         6.边读边创建

    fscanf(fp,"%d%s%d",&food_menu.number,food_menu.name,&food_menu.price);

          foodlist_creat(h,food_menu);

        7.创建用new=(food_pnode)malloc(sizeof(food_node));

  8.把读出的内容赋给新结点

       *new=food_menu;

  9.list_add_tail(&new->list,&h->list);插到表尾

   10. 遍历显示

 

从文件里读数据到屏幕,布布扣,bubuko.com

从文件里读数据到屏幕

原文:http://www.cnblogs.com/tongusir/p/3649421.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!