| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 497 人关注过本帖
标题:【c程】无课表小程序中链表修改
只看楼主 加入收藏
只羽桑
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-5-16
结帖率:100%
收藏
 问题点数:0 回复次数:1 
【c程】无课表小程序中链表修改
自己编的无课表小程序,但是现在还没有成型,对链表从文件中读取数据搞不懂,下面的代码不知道怎么错了,求改正!!!
#include <stdio.h>
#include <stdlib.h>                         //用于调用 exit()函数
#include <string.h>                         //用于调用 stricmp()函数
#include <conio.h>                          //用于调用 getch()函数
#define DAYS 6     
#define LESSONS 5
#define M 300   
typedef struct tt             //建立一个节点结构体//
  {
      char date;      //每一节课的情况//
      struct tt*next;  //节点的指针部分 //
  }add_tt;
struct pt
  {
    char date;      //每一节课的情况//
  };
FILE *fp;
add_tt *tail,*head;  //定义全局变量即链表的表尾节指针和头指针//
  //在文件中读取数据生成课程表单链表,如果不存在就提示错误//
char load(char infile[200])
  {   
        add_tt *new;
        struct pt t;
        head=(add_tt *)malloc(sizeof(add_tt));
        tail=head=NULL;
        loop:                                   //设置钩子loop,形成主循环体
        printf("输入你想要处理的课程表的地址:\n");
        printf("(例如: C:\\\\abc\\\\123.txt)\n");  //提示输入格式
        printf("文件地址:");
        gets(infile);
            //退出判断原件
        if (stricmp(infile, "exit") == 0)        //判定输入字符串是否为‘exit’,
        {
          esc1:printf("\t\tThank you for using our program.\n\t\t\tBye bye!\n");//设置钩子esc1
         exit(0);                          //判定成立则退出程序。
        }
          //文件地址校准原件
        if((fp=fopen(infile,"r"))==NULL)         //判定文件地址合法性,合法则以只读方式读入文件
        {
            printf("Can not open '%s'\n",infile);
            printf("Please check your input.\n");
            goto loop;                          //文件地址输入有误,则返回钩子loop提示重新输入
        }
        
     if(!feof(fp))                           /*循环读数据直到文件尾结束*/
          if(fread(&t,sizeof(struct pt),1,fp)==1)  //如果读到数据,执行循环体//
           {
              new=(add_tt *)malloc(sizeof(add_tt));  //连入第一个节点//
              strcpy(new->date,t.date);
              head=tail=new;                   /*保存当前结点的指针,作为下一结点的前驱*/
              new->next=NULL;
           }
       //连入其他节点//
       while(!feof(fp))                                /*循环读数据直到文件尾结束*/
       {
            !f(fread(&t,sizeof(struct pt),1,fp)==1)
            {
                new=(add_tt *)malloc(sizeof(add_tt));  //申请空间连入第一个节点//
                strcpy(new->date,t.date);
                tail->next=new;
                  new->next=NULL;
                  tail=new;
            }
          }
          fclose(fp);
          return head;
   }
    //建立函数打印链表内容//
void print(struct tt *head)                  
  {
    struct tt *p;
    p=head;
    if(p==NULL)
      {
         printf("no dates\n");
         getche();
      }
    else
        while(p!=NULL)
          {
           printf("%3c",p->date);
           p=p->next;
          }
}
main()
     {
         int m=1,z;
         char infile[200];
    //欢迎界面
        printf("\t\t欢迎来到无课表小程序\n");
        printf("\t\t\t\t(输入 'exit' 离开程序)\n\n");
        printf("输入你想要处理的课程表的地址:\n");
        printf("(例如: C:\\\\abc\\\\123.txt)\n");  //提示输入格式
        printf("文件地址:");         
        head=load(infile);
        print(head);
     }
搜索更多相关主题的帖子: include 结构体 数据 
2012-06-03 11:21
只羽桑
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-5-16
收藏
得分:0 
求助啊,就是链表load那边不知道错哪了
2012-06-03 11:22
快速回复:【c程】无课表小程序中链表修改
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016998 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved