我在弄清楚如何将我的 uint8 向量转换为字符串流时遇到了一些麻烦。
在输入我得到 uint8 的向量时,前 9 个字节是我的字符串流中不需要的标志,接下来的 2 个字节是我需要作为字符串的一些数据,我们称它们为“name1”,接下来的 2 个字节是另一个名称,以免调用它“name2”,然后是 4 个字节,它们是一些 uint32 数字(但写为 4 个 uint8 字节),让我们称之为“数字”。现在我需要将这些数据传递给 stringstream 但是:
- name1 和 number2 需要写成字节(byte 0x52 -> char[2]={"5","2"})
- number 需要转换为 uint32
- 所有变量都需要在最终字符串流中用分号分隔
所以如果我得到一个像这样的向量:
---一些 9 个字节---, 0x05, 0x00, 0x01,0x00,0x00,0x00,0x08,0x0E, ---一些其他数据---
我需要 stringstream 是这样的:
“0500;0100;2062;”
我已经设法弄清楚如何将数字转换为 uint32:
uint8_t tab[4];
for(int i=4; i!=0; --i)
{
tab[4-i]=data[i+14];
}
uint32_t* var = (uint32_t*)tab;
有没有更好的方法来做到这一点?
编辑:
如何将 uint8 值作为字符传递给字符串?
例子:
字节输出:0x05
字符串输出:05
我可以使用“<<”运算符将字符串放入字符串流还是不推荐?