所以我有这个数据包,我想用TCP / IP协议将它发送到我的设备。我的阵列是:
unsigned char array1[] = {'0x00', '0x84', '0x00', '0x00', '0x00', '0x06', '0x54', '0x01', '0x00', '0x01', '0x00', '0x03'};
我希望将其转换为字符串。我该怎么做?
现在我只是手动写下十进制等值:
unsigned char array1[] = {0,132,0,0,0,6,84,5,0,2,255,0};
并将其转换为字符串:
std::string data ( array1, array1 + sizeof array1 / sizeof array1[0] );
但是,我想我可以直接使用我的十六进制数据包吗?
string x= "00 84 00 00 00 06 54 05 00 02 FF 00";
还有一种方法我可以设计我的消息头,这是不改变的前7个字节?其余部分有什么变化?
答案 0 :(得分:1)
以下代码可以满足您的需求。
std::string s { "\x00\x01\x02\x03\x04", 5 };
使用std :: string构造函数,该构造函数也取长度又称字节数。