4508|4

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

VC中的三种CString转数值的方法在eVC中全部失效 [复制链接]

  1. void CStyCString2ValueDlg::OnButton1()
  2. {
  3.         char *s="123", *stops;
  4.         int i;

  5.         //这三种方法无论在VC还是eVC均正常
  6.         i=strtol(s, &stops, 10);
  7.         sscanf(s, "%d", &i);
  8.         i=atol(s);

  9.         //这三种方法在VC正常,在eVC出错
  10.         CString cs="123";
  11.         i=strtol(cs, &stops, 10); //error C2664: 'strtol' : cannot convert parameter 1 from 'class CString' to 'const char *'
  12.         sscanf(cs, "%d", &i);
  13.         i=atol(cs);

  14.         //即使换成双字节字符,在eVC内仍然出错
  15.         wchar_t wstops;
  16.         i=wcstol(cs, &wstops, 10); //error C2664: 'wcstol' : cannot convert parameter 2 from 'unsigned short *' to 'unsigned short ** '

  17.         //检查转换结果是否正确
  18.         CString sTemp;
  19.         sTemp.Format(L"%d", i);
  20.         SetWindowText(sTemp);
  21. }
复制代码

最新回复

OK,经过试验,CString 转整型的问题用 _wtof 解决了,但要转成浮点的怎么办?atof有没有双字节版?  详情 回复 发表于 2009-8-22 12:40
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
引用 2 楼 vbprofan 的回复:
OK,经过试验,CString 转整型的问题用 _wtof 解决了,但要转成浮点的怎么办?atof有没有双字节版?

用swscanf......
  wchar_t  *pStr = _T("1.234234");   
  double   lfRet;   
  swscanf(pStr, _T("%lf"), &lfRet);  
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
swscanf 成功,谢谢!
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 
自编函数可以解决,不过太麻烦;先转成 char[] 估计也可以,不过还是太麻烦。

总觉得有现成的函数和方法可以解决这个问题。

我的完美主义又犯了,呵呵,总是想知道最简单的方法。。。
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

5
 
OK,经过试验,CString 转整型的问题用 _wtof 解决了,但要转成浮点的怎么办?atof有没有双字节版?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表