CString转换成int型

梅名智 2006-11-08 09:59:48
请问我要在一个编辑窗取得一个十六进的制值。如何把他变成int型数据,像:0x12fed56d是Ctring.
0x不属于这个字符串里面。难道只有自己进行ASCII码转换嘛
...全文
350 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
梅名智 2006-11-08
  • 打赏
  • 举报
回复
这样能行,但是我可以在里面输入字符,我在编辑框里不能输入其它字符
jixingzhong 2006-11-08
  • 打赏
  • 举报
回复
把 CString 类型的数据转化成整数类型最简单的方法就是使用标准的字符串到整数转换例程。
  虽然通常你怀疑使用_atoi()函数是一个好的选择,它也很少会是一个正确的选择。如果你准备使用 Unicode 字符,你应该用_ttoi(),它在 ANSI 编码系统中被编译成_atoi(),而在 Unicode 编码系统中编译成_wtoi()。你也可以考虑使用_tcstoul()或者_tcstol(),它们都能把字符串转化成任意进制的长整数(如二进制、八进制、十进制或十六进制),不同点在于前者转化后的数据是无符号的(unsigned),而后者相反。看下面的例子:

CString hex = _T("FAB");
CString decimal = _T("4011");
ASSERT(_tcstoul(hex, 0, 16) == _ttoi(decimal));
Jokar 2006-11-08
  • 打赏
  • 举报
回复
== 是

int iValue;
CString str("0x12fed56d");
sscanf(LPCTSTR(str), "%x", &iValue);
Jokar 2006-11-08
  • 打赏
  • 举报
回复
int iValue;
CString str("0x12fed56d");
sscanf("%x", LPCTSTR(str));
Bennyatt 2006-11-08
  • 打赏
  • 举报
回复
有现成的函数 。。。
最近怎么 类型转化问题这么多呀。。。。

你去买本 大全 手册什么的
上面都是函数的那种!

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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