[技术讨论] sprintf格式化字符串的问题

[复制链接]
 楼主| pjzmj2012 发表于 2020-4-11 16:26 | 显示全部楼层 |阅读模式
本帖最后由 pjzmj2012 于 2020-4-11 16:35 编辑

                                for (i = 0; i < SenfData_len; i++)
                                {
                                        sprintf((char *)sengdtest+i*2," %02X",sendtest);
                                }
打印出来是这样的
7 7 0 5 0 0 0 0 1 4 3 0 0 0 0 2 0 1 1 2 5 7 0 0 0 0 0 0 2 4 3 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 C 0 0 0 0 0 D 0 0 0 0 0 E 0 0 0 0 3 1 8 4 4 0 2 0 6 9 4 2 D 0 0A
                                for (i = 0; i < SenfData_len; i++)
                                {
                                        sprintf((char *)sengdtest+i*2," 02X",sendtest);
                                }
打印出来是这样的
7F7F005B020009001D4130000500082004111618007A00000000000428443801010016180000000000000000000000000000000000000000000027B80000000000D10000000001E900000000301886424E0120036749450CC00D0A
问题是如何才能打印出
7F 7F 00 5B 02 00 09 00 1D 41 30 00 05 00 ....................等等

@caoenq

评论

xch
sprintf((char *)sengdtest+i*2," %02X ",sendtest);  发表于 2020-4-11 20:24
caoenq 发表于 2020-4-11 16:45 | 显示全部楼层
插入空格的ASC码。

评论

[url=home.php?mod=space&uid=1050822]@caoenq[/url]  发表于 2020-4-11 16:51
不知道怎么插  发表于 2020-4-11 16:48
示范一下好吗  发表于 2020-4-11 16:47
如何操作  发表于 2020-4-11 16:46
zzz3265 发表于 2020-4-12 14:20 | 显示全部楼层
2改成3
                                for (i = 0; i < SenfData_len; i++)
                                {
                                        sprintf((char *)sengdtest+i*3," %02X",sendtest);
                                }
你瞅啥 发表于 2020-4-12 17:48 | 显示全部楼层
如果是单片机的话,sprintf背后的代码量太大了,有好几k,是单片机不能承受之重。换成我会这么写:
  1. char tbl[16]="0123456789abcdef";
  2.   for (i = 0; i < SenfData_len; i++){
  3.    *sengdtest++=tbl[sendtest>>4];
  4.    *sengdtest++=tbl[sendtest&0xf];
  5.    *sengdtest++=' ';
  6.   }


评论

瞅你咋滴  发表于 2020-8-25 09:43
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

131

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

36

主题

131

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部