linux里,char转int并打印出来的问题

yccwt 2011-11-12 11:47:03
strBaseInfo[32] ;



...

int iSF1;
printf("CHAR IS: %02x \n",strBaseInfo[8]);//打印出来是01,正常的

sprintf(iSF1, "%.2x",strBaseInfo[8]);
iSF1 = atoi(strBaseInfo[8);
以上两种貌似都不对,打印不出来
printf("INT IS: %d \n",iSF1);





如何将strBaseInfo第9字节的01转换成 int型的0x01 并打印出来???
...全文
376 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
AndyZhang 2011-11-14
  • 打赏
  • 举报
回复
sprintf 第一个参数不应该是int类型的啊,这个百度百科讲的很清楚啊
小笨同学 2011-11-14
  • 打赏
  • 举报
回复
sprintf()、atoi()不管是语义还是语法,你都用错了。

printf("INT IS: %d \n",(int)strBaseInfo[8]);
nice_cxf 2011-11-14
  • 打赏
  • 举报
回复
strBaseInfo[8]是1而不是'1',你itoa自然不对
nice_cxf 2011-11-14
  • 打赏
  • 举报
回复
iSF1是int,sprintf第一个参数应该是char*,编译能通过?
yccwt 2011-11-14
  • 打赏
  • 举报
回复
有人知道如何转吗?
yccwt 2011-11-12
  • 打赏
  • 举报
回复
strBaseInfo是char,

因为我是打上来的,少打了个]
ryfdizuo 2011-11-12
  • 打赏
  • 举报
回复
printf("%x\n", strBaseInfo[8] - '0');
孤独小剑 2011-11-12
  • 打赏
  • 举报
回复
这句不合法
sprintf(iSF1, "%.2x",strBaseInfo[8]);
iSF1存储的是字符01(假如是1的话),
iSF1 = atoi(strBaseInfo[8);
少个']'编译都通不过吧,改过之后楼主要说明strBaseInfo是什么类型的,atoi函数是讲字符串装为int的函数。

70,037

社区成员

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

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