首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

64为系统中sscanf 的结果为什么不是小弟我预想要的

2013-07-16 
64为系统中sscanf 的结果为什么不是我预想要的nwGtpReatImsiAndCreateSessionRequestToPeer(NwGtpv2cNodeU

64为系统中sscanf 的结果为什么不是我预想要的
nwGtpReatImsiAndCreateSessionRequestToPeer(NwGtpv2cNodeUlpT* thiz)
{
        int flag = 0;
        char buffer[128];
        FILE *file = fopen("imsi.ini","r");
        char buff;
        if(file == NULL)
        {
                flag = 1;
                return 0;
        }
        while(fgets(buffer,128,file)!=NULL)
        {
    sscanf(buffer,"%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x",&imsi[0],&imsi[1],&imsi[2],&imsi[3],&imsi[4],&imsi[5],&imsi[6],&imsi[7],&msisdn[0],&msisdn[1],&msisdn[2],&msisdn[3],&msisdn[4],&msisdn[5],&msisdn[6]);
             printf("the imsi= 0x%x-0x%x-0x%x-0x%x-0x%x-0x%x-0x%x-0x%x-0x%x-0x%x-0x%x-0x%x-0x%x-0x%x-0x%x\n",imsi[0],imsi[1],imsi[2],imsi[3],imsi[4],imsi[5],imsi[6],imsi[7],msisdn[0],msisdn[1],msisdn[2],msisdn[3],msisdn[4],msisdn[5],msisdn[6]);

                 nwGtpv2cUlpCreateSessionRequestToPeer(thiz,imsi,msisdn);
            memset(imsi,0,8);
        }
}

文件内容:0x64,0x00,0x01,0x01,0x00,0x01,0x41,0xf2,0x68,0x31,0x04,0x00,0x01,0x41,0xf3

显示结果:0x0,0x0,0x1,0x1,0x0,0x1,0x41,0xf2,0x68,0x31,0x04,0x00,0x01,0x41,0x0

为什么开始和结束两个位置的值显示错误呢? 64位系统。 64位 C sccsnf
[解决办法]
"r"改为"rb"试试看
[解决办法]
imsi 和 msisdn 是怎么定义的? 确认是 int 的数组撒?

热点排行