我定义了如下的字符数组
char receiveBuf[4096];
memset(receiveBuf,0,sizeof(receiveBuf));CString Str;
Str.Format("%s",receiveBuf);
然后得到的类似于这样的字符串
12134.5667,2143.56
就是有两组数据但是用逗号分割!
我如何把这组数据解析成数字
double x=12134.5667
double y=2143.56
谢谢,最好有一段程序做例证

解决方案 »

  1.   

    DOUBLE a = _tstof(TEXT("12134.5667"));
    这样可以吧。
      

  2.   

    先利用_tcstok()以_T(",")先分割,然后利用_tcstod()
      

  3.   

    如果格式确定sscanf一下子就弄好了
      

  4.   


    +1
    或者送CString 的Find方法也可以
      

  5.   

    是这样的我的字符串是"12.365 36.0107"两个数字组成,其中以空格为分拣,我如何提取这两个数字到我的X,Y中(double类型)!
      

  6.   

    sscanf("12.365 36.0107","%f %f",&fa,&fb);
      

  7.   

    如果就是2个:
    char received[]="12.365 36.0107";
    double dbl[2];
    char *pTmp=received;
    dbl[0]=atof(pTmp);
    while(*pTmp !=' ') pTmp ++;// skip '12.365'
    while(*pTmp ==' ') pTmp ++;// skip ' '
    dbl[1]=atof(pTmp);
      

  8.   

    double fa, fb;
    sscanf("12.365,36.0107","%f,%f",&fa,&fb);
    为什么这样我调试出来的结果是
    fa=-9.2559604621218753e+061
    fb=-9.2559604772524855e+061
    这是为什么呢?int a, b, c; 
    sscanf("2006:03:18", "%d:%d:%d", &a, &b, &c); 
    而这个就很正常。
      

  9.   

    见帮助文件“HOWTO: sscanf() Example Using a Comma (,) as Delimiter”