一字符串str="0x05f5e81c",用sprintf(szMsg,"%d",str)把它转换成十进制字符串,得到的值应是"100001820",而结果是"1244796",为什么?

解决方案 »

  1.   

    int b;
    sscanf(str, "%x", &b);
      

  2.   

    你需要把字符串str="0x05f5e81c"转换为10进制数字后,才能用sprintf(szMsg,"%d",str)得到十进制的字符串呀
      

  3.   

    CString _temp = str.Right(8);
    int b;
    sscanf(_temp, "%x", &b);
      

  4.   

    sprintf(szMsg,"%d",str); 会将str的前几个字符(4?8?)转化成数字型然后按十进制格式显示出来(结果在szMsg)。
    sscanf(str, "%x", &b);就会将str当成十六进制格式输入,得到数值结果放在b中,然后你操作b就可以了
      

  5.   

    函数已经说出来了用法看msdn即可up