免费注册 查看新帖 |

Chinaunix

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

[C] 数组对数组赋值失败,附代码。请各位大牛帮忙解答 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-15 10:37 |只看该作者 |倒序浏览
//入参filename--文件的路劲,temps--传入要进行对比的字符串,PCBMESSAGE
int Compare(HWND hWnd,PCBMESSAGE PMyMessage,char *filename,char *temps)
{
        int fd,i,usrflag,sz;
        char temp[2];
        char getstr[100];
        //char *getstr;
        #if 0
        if((getstr=malloc(100)) == NULL)
        {       
                        CBMessageBox(hWnd,1,"获取内存失败!");
                        return -2;
        }       
        #endif
       
        memset(getstr,0,100);
        memset(temp,0,2);
       
        fd = open(filename,O_RDONLY);
        if(fd < 0)
        {
                printf("open %s failed!\n",filename);
                return -1;
        }
       
        lseek(fd,0,SEEK_SET);
        i = 0;
        usrflag = 0;
        sz = 0;
/************************************************************************************************
读取到的内容为如下所示
PT1051T|0741261108|林凤莺|港西村(C2-124-4)|201005|无|116.23|20100506
PT1051T|0741262010|彭金粦|港西村(F7-203-2)|201005|无|185.33|20100506
PT1051T|0741262066|彭桂清|港西村(F2-217-3)|201005|无|98.24|20100506
************************************************************************************************/

        while(read(fd,temp,1))
        {
                printf("%c",temp[0]);
                if(temp[0]=='|')
                {        i++;
                        printf("\ni %d\n",i);
                }
                if(i==0 ||i==1)
                {
#if 0
                        //printf("into the xxxx\n");
                        *getstr=temp[0];
                        getstr++;
                //        printf("getstr %c\n",getstr);
#endif
//将temp值赋给getstr
/****************************************************************************
                           getstr[sz] = temp[0];这句话赋值失败了!
                           temp[0]有内容,而getstr[sz]却没有东西
****************************************************************************/
                           printf("===\n");
                        getstr[sz] = temp[0];
                        sz++;
                        printf("%c\n",getstr[sz]);
                }
                if(temp[0]=='\n')
                {        i=0;
                        usrflag++;
                        memset(getstr,0x00,100);
                        printf("i %d \nusrflag %d \n",i,usrflag);
                }
                memset(temp,0,2);
                if(i!=0 &&i!=1)
                {
                        getstr[sz] = '\0';
                        if((strstr(temps,getstr))==0)
                        {
                                printf("haven't found\n");
                                continue;
                        }
                           else
                           {
                            break;
                            }
                }
        }
        close(fd);

论坛徽章:
0
2 [报告]
发表于 2010-07-15 10:41 |只看该作者

  1.                         sz++;
  2.                         printf("%c\n",getstr[sz]);
复制代码
你都sz++了,打印出来的东西会对?
赋值是getstr[0],打印的内容是getstr[1]

论坛徽章:
0
3 [报告]
发表于 2010-07-15 10:45 |只看该作者
回复 2# churchmice


    谢啦~~~

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
4 [报告]
发表于 2010-07-15 11:01 |只看该作者
[code]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP