atoi怎样把CString类型的字符串转换成整数?

zhangyongjun001 2008-11-06 03:41:57
我用的是vc2005。在做项目时,有如下语句:
CString s=_T("123");
int i = atoi(s);
出错信息为:
error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
用int i = atoi((LPCTSTR)s);
出错信息为:
error C2664: “atoi”: 不能将参数 1 从“LPCTSTR”转换为“const char *”
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
请问该如何把字符串转换相应的整数。
...全文
613 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
stingddk 2011-02-10
  • 打赏
  • 举报
回复
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
chinacoding 2008-11-06
  • 打赏
  • 举报
回复
当然不行
CString s=_T("123");
int i = atoi(s.GetBuffer()); // 这个只有在.net的版本中才被支持

如果是 vc6 如下
CString s=_T("123");
int i = atoi(s.GetBuffer(s.GetLength())); // 这个也可以在.net的版本中被支持

对于这样的函数_ttoi 最好少用 以下划线开有的函数好像是微软的独家风格。
如果做跨平台的话 最好还是用通用的风格

.net版本出来以后 微软的很多函数接口 变成 _XXX或者是 XXX_s的新式。
本来通用的接口 让他这么一弄反倒有点蹩脚, 做跨平台的时候要做做多套接口,或者是加上编译开关。 个人觉得有点麻烦

好啦看着给分吧
rookieme 2008-11-06
  • 打赏
  • 举报
回复
当然不行
CString s=_T("123");
int i = _ttoi(s);

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧