如何将 unsigned char 打印为 ascii
Posted
技术标签:
【中文标题】如何将 unsigned char 打印为 ascii【英文标题】:How can I print unsigned char as ascii 【发布时间】:2014-02-10 11:07:29 【问题描述】:我正在尝试将 unsigned char 转换为 ascii 文本。我该怎么做? 这个我试过了,但是错了:
typedef struct mtmheader
unsigned char objName[20];
unsigned char msgType[2];
mtmheader;
mtmheader h;
processMTMHeader(datap,&h, endmmsgp );
printf("Name, type: %s %c\n",(char *) &h.objName,(char *) &h.msgType);
编辑 我读了无符号字节流,想知道我如何打印 ascii 文本。在 printf 中只是伪代码,这是错误的。
【问题讨论】:
请发布示例输入以及您期望的输出 【参考方案1】:printf("Name, type: %s %c\n", h.objName, h.msgType[0]);
应该打印整个字符串objName
和msgType
中的第一个字符。
对于第一个工作,您必须确保 objName
确实为空终止。
另外,unsigned char
不是用于字符串的正确类型,请使用纯 char
而不使用 unsigned
。
【讨论】:
我知道,unsigned char
不正确。这是我的问题。这就是我发送这个问题的原因。以上是关于如何将 unsigned char 打印为 ascii的主要内容,如果未能解决你的问题,请参考以下文章
将 unsigned char* 转换为可读字符串 & 这个函数在做啥
如何将 unsigned char[] 转换为 std::vector<unsigned char>