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

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.。。。。
...全文
72 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
14号选手 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; 试试

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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