十六进制字符串转换问题 ,着急!

kbsoft 2013-05-01 09:12:02
char v = '7';
string strHex = "0x" + v; //0x7 here

unsigned int nthValue = 0;
sscanf(strHex.c_str(),"%x",&nthValue);

nthValue转换后的值为何是十进制的250???疑惑啊。。。。。



long nthValue = strtol(strHex.c_str(), NULL, 16); 用这个来转貌似也为250.。。。。
...全文
42 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
啊超29 2013-05-01
你这个我还真不清楚,但是貌似c_str()转换的是const char*类型吧,最好转换一下
回复
kbsoft 2013-05-01
谢谢,这么低级的错误。。。。
回复
fthislife 2013-05-01
string strHex = "0x" + v;这句的问题 你改成: string strHex = "0x7" 或 string strHex = "0x"; strHex+=v; 试试
回复
发动态
发帖子
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
社区公告
暂无公告