【发布时间】:2017-12-06 09:30:45
【问题描述】:
简介:考虑到我没有使用 C++ 的经验,但可以找到任何语言来完成基本任务。 我的大部分经验是使用 .net 语言(vn.net 和 C#)、php 和 js,所以请像在教一个完整的菜鸟一样解释。
问题出在:我收到的数据是无符号字符[12];然后我必须将该数据附加到 std::string
数据总是 12 个字符长,并且不是以空结尾的,因为它是通过选择从串行端口接收的特定字节来收集的。
长话短说:
std::string stroutput = "some text ";
unsigned char characters[12];
characters[0]=64; //demo data to shorten the code
characters[1]=72;
stroutput.append(characters[0]);
stroutput.append(characters[1]);
....
我想要的结果是字符串值
some text @H...
但我得到的是编译时出错
error: invalid conversion from ‘unsigned char’ to ‘const char*’ [-fpermissive]
stroutput.append(characters[0]);
~~~~~~~~~~~~^
这种想法背后的逻辑是:
printf("%c%c",characters[0],characters[1]);
和
std::cout << characters[0] << characters[0] << std::endl;
结果
@H
那么:如何将 unsigned char something[12] 转换为 std::string?
谢谢
编辑:抱歉重复,搜索未返回该问题。 谢谢大家 - 太糟糕了,我无法标记多个答案!
【问题讨论】:
-
stroutput.append(reinterpret_cast
(characters), 12);
标签: c++ string type-conversion unsigned-char