0
所以我有這個數據包,我想要使用TCP/IP協議將它發送到我的設備。我的陣列是:如何在C++中將十六進制字符數組轉換爲字符串?
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個字節?該部分的其餘部分有哪些變化?
請注意,'0x00'不是一個單一的「字符」,它是一個多字節字符。也許你的意思是'unsigned char array1 [] = {0x00,0x84,...};'? *沒有*引號? –
沒有引號,它會針對無符號類型拋出警告。 –
爲什麼你想要它作爲'std :: string'?我不太確定這是否是「正確的」數據類型... –