首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于sprintf语句解决思路

2012-02-04 
关于sprintf语句sprintf(s,%02X%02X%02X.0,rbuf[1],rbuf[2],rbuf[3])当rbuf[1]或rbuf[2]或rbuf[3]大于0

关于sprintf语句
sprintf(s,"%02X%02X%02X.0",rbuf[1],rbuf[2],rbuf[3]);
当rbuf[1]或rbuf[2]或rbuf[3]大于0x80时,格式化出来的字符串就出错,前面加上了FF,是怎么回事啊???
请高手帮忙!!!


[解决办法]
大于080的时候是汉字编码
[解决办法]
主要看你的rbuf如何定义的,如果是BYTE数组,应该不会出问题。针对你的代码可以强制类型转换,改为
sprintf(s,"%02X%02X%02X.0",(byte)rbuf[1],(byte)rbuf[2],(byte)rbuf[3]); 

[解决办法]
考虑一下数据范围,截取后面的一个字节就可以了:

sprintf(s,"%02X%02X%02X.0",rbuf[1]&0xff,rbuf[2]&0xff,rbuf[3]&0xff); 

&0xff,截取末尾一个字节

热点排行