hur.cn - 华软网

 热门搜索

如何将字符数组变换成数字????

  作者:未知    来源:网络    更新时间:2011/8/12
我定义了如下的字符数组
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
谢谢,最好有一段程序做例证
---华软 网友回答---
C++">DOUBLE a = _tstof(TEXT("12134.5667"));

这样可以吧。
---华软网友回复---
引用 1 楼 zwfgdlc 的回复:
C/C++ code
DOUBLE a = _tstof(TEXT("12134.5667"));

这样可以吧。

我的字符串中间是有逗号的,这个怎么搞呢?
---华软网友回复---
引用 2 楼 xiongkw 的回复:
引用 1 楼 zwfgdlc 的回复:
C/C++ code
DOUBLE a = _tstof(TEXT("12134.5667"));

这样可以吧。

我的字符串中间是有逗号的,这个怎么搞呢?

先利用_tcstok()以_T(",")先分割,然后利用_tcstod()
---华软网友回复---
如果格式确定sscanf一下子就弄好了
---华软网友回复---
各位谢谢!
但小弟初学!
能不能最好写个程序,谢谢
---华软网友回复---
引用 3 楼 visualeleven 的回复:
引用 2 楼 xiongkw 的回复:
引用 1 楼 zwfgdlc 的回复:
C/C++ code
DOUBLE a = _tstof(TEXT("12134.5667"));

这样可以吧。

我的字符串中间是有逗号的,这个怎么搞呢?

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


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

---华软网友回复---
是这样的我的字符串是"12.365 36.0107"两个数字组成,其中以空格为分拣,我如何提取这两个数字到我的X,Y中(double类型)!
---华软网友回复---
sscanf("12.365 36.0107","%f %f",&fa,&fb);
---华软网友回复---
8楼正解
---华软网友回复---
如果就是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 楼 qiandayong 的回复:
sscanf("12.365 36.0107","%f %f",&fa,&fb);

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); 
而这个就很正常。

---华软网友回复---
见帮助文件“HOWTO: sscanf() Example Using a Comma (,) as Delimiter”      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。