having real trouble with this simple issue. I have a string like this:
std::string msg = "00 00 00 00 00 06 01 05 00 FF 00 00";
which i would like to:
unsigned char bbuffer[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x05, 0x00, 0xFF, 0x00, 0x00 };
what is the way to do it?
If at all possible, I'd advise using a std::vector<unsigned char>
instead of an actual array.
Using that, I guess I'd do something like this:
std::istringstream buffer(msg);
std::vector<unsigned char> bbuffer;
unsigned int ch;
while (buffer >> std::hex >> ch)
bbuffer.push_back(ch);
If you really insist on the array, you could do something like:
std::istringstream buffer(msg);
char bbuffer[12];
unsigned int ch;
for (int i=0; buffer >> std::hex >> ch; i++)
bbuffer[i] = ch & 0xff;
But the vector is usually preferable.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.