免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 748 | 回复: 0
打印 上一主题 下一主题

请大大们帮我一下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-08 19:36 |只看该作者 |倒序浏览
我有一个问题,请指教
代码如下

  1. #include <stdio.h>;
  2. #include <string.h>;
  3. //#include <io.h>;
  4. #include <stdlib.h>;
  5. #include <unistd.h>;

  6. #define    OK      0
  7. #define    NG      -1
  8. #define    F_OK    0
  9. #define    LEN     sizeof(struct sList)

  10. struct sList{
  11.         char * sName;
  12.         struct sList * next;
  13. };

  14. void ConfigList(FILE *fp);

  15. int main()
  16. {
  17.         FILE *fpread;
  18.         if(!access("eg.cfg",F_OK))
  19.         {
  20.                 if((fpread=fopen("eg.cfg","r"))==NULL)
  21.                 {
  22.                         printf("open fail\n");
  23.                 }
  24.                 else{}
  25.                 ConfigList(fpread);
  26.                 fclose(fpread);
  27.         }
  28.         else
  29.         {
  30.                 printf("NO SUCH FILE\n");
  31.                 return NG;
  32.         }
  33.         return OK;
  34. }

  35. void ConfigList(FILE *fp)
  36. {
  37.         char buf[1024];
  38.         char *p;
  39.         struct sList *head,*q1,*q2;
  40.         int n = 0;
  41.         q1 = q2 = (struct sList *)malloc(LEN);
  42.         head = NULL;
  43.         while ( !feof( fp ) ) {
  44.                 memset(buf, NULL, 1024);
  45.                 fgets( buf, sizeof( buf ), fp );
  46.                 if(strlen(buf)==1)
  47.                 {}
  48.                 else
  49.                 {
  50.                         if(buf[0]=='[')
  51.                         {       
  52.                                 q1 = (struct sList *)malloc(LEN);
  53.                                 n = n + 1;
  54.                                 p = strtok(buf,"[]");
  55.                                 q1->;sName = p;                  
  56.                                 if(n==1)head = q1;
  57.                                 else q2->;next = q1;
  58.                                 q2 = q1;
  59.                                 printf("%s\n",q1->;sName);           //这里可以打印出来具体内容
  60.                         }
  61.                 }
  62.         }       
  63.         printf("%s\n",p);                               //这里打印出来是空行
  64.         q2->;next = NULL;
  65.         q1=head;
  66.         if(q1!=NULL)
  67.         do
  68.         {
  69.                 printf("%s\n",q1->;sName);                   //这里打印出来也是空行
  70.                 q1 = q1->;next;
  71.         }
  72.         while(q1!=NULL);
  73. }
复制代码

我是想读取文件,然后将“[]”中的内容保存在链表结构中,可一直不成功,请各位大大帮帮忙。我觉得是strtok()的问题,不过不能确定。请指教。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP