免费注册 查看新帖 |

Chinaunix

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

[C] strstr语言 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-04 10:13 |只看该作者 |倒序浏览
我有一个两个txt文件一个是配置文件,还有一个是要比较文件内容如下:

peizhi.txt                                                                         usedpercent
/dev/cciss/c0d0p1 90                                                     /dev/cciss/c0d0p1 53
/dev/cciss/c0d0p2 90                                                     /dev/cciss/c0d0p2 6
none 90                                                                         none 0
/dev/cciss/c0d0p3 90                                                     /dev/cciss/c0d0p3 24
/dev/cciss/c0d0p5 90                                                     /dev/cciss/c0d0p5 9

我的思路是两者两个txt文件里的内容都放入结构体中,先用strstr寻找配置文件中的盘符有和比较文件相同的话就输出。

先是这个,但程序出了一点问题,给高手看看


                  #include <sys/types.h>
                  #include <unistd.h>
                  #include <stdlib.h>
                  #include <stdio.h>
                  #include <string.h>
                  struct type
                  {char disk[100];
                   int  percent;
                   }type1;
                  struct peizhi
                  {char diskpz[100];
                          int percentpz;
                   }peizhi1;
                   char *same;
                   int main(int argc, char* argv[])
                  {
                   FILE *read_in;
                   FILE *read_peizhi;
                   char buf[1024];
                   struct type *p;
                   struct peizhi *l;
                   p=&type1;
                   l=&peizhi1;
                   read_in=fopen("used_percent.txt","r" );
                   while (!feof(read_in)){
                           fscanf(read_in,"%s %d",&(type1.disk),&(type1.percent));
                           }
                   read_peizhi=fopen("peizhi.txt","r" );
                   while (!feof(read_peizhi)){
                           fscanf(read_peizhi,"%s %d",&(peizhi1.diskpz),&(peizhi1.percentpz));
                           }
                    same=strstr((*p).disk,(*l).diskpz);
                   if(same)
                           printf("%s\n",same);
                   else
                    printf("Not Found!");
                    getchar();
                    return 0;
                   }


注:数据读入结构体均正确

论坛徽章:
0
2 [报告]
发表于 2009-03-04 10:15 |只看该作者
问题:这样个txt文件的盘符明明都相同,但是输出就是not found

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2009-03-04 10:15 |只看该作者
有几个地方没对齐,
比如 fscanf 和 printf 那里。还有上面那个 int,
要再往左靠一些。

论坛徽章:
0
4 [报告]
发表于 2009-03-04 10:28 |只看该作者

回复 #1 superjimmy888 的帖子

两个文件读入的内容都放在一个结构里?怎么说也应该用结构数组吧。打开文件啥的最好判断下返回值,不过这么小的程序倒也无伤大雅。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP