首页 > 解决方案 > 可以在 C 中打印一串不可打印的字符

问题描述

我有一个低资源微控制器的固件;目前我已将默认预设定义为字符串

#define defaultTypes "211110000" //From ASCII 0 to ASCII 9

然后在主代码中,我使用 sprintf() 将其打印在 RAM 中的缓冲区中,并使用 for 循环读取每个字节,因为每个字节都属于用户可以设置以满足其需求的变量。

现在我需要将其更改为使用从 0x00 到 0xFF 的不可打印字符所以我需要创建一个定义,例如

#define defaultTypes 0x02,0x01,0x01,0x01....

并使用 sprintf() 将其加载到 RAM 缓冲区中,或者您可能有更好的方法。

标签: c

解决方案


sprintf()是一个有点奇怪的选择,因为您没有格式化替换要做。相反,您可以使用memcpy(). 它可能看起来像这样:

uint8_t  data[] = { defaultTypes } ;  // your 0x01 etc.
memcpy(buffer, data, sizeof data);

推荐阅读