この単純な問題に本当に問題があります。次のような文字列があります。
std::string msg = "00 00 00 00 00 06 01 05 00 FF 00 00";
私がしたいこと:
unsigned char bbuffer[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x05, 0x00, 0xFF, 0x00, 0x00 };
それを行う方法は何ですか?
可能であればstd::vector<unsigned char>
、実際の配列の代わりに a を使用することをお勧めします。
それを使って、私は次のようなことをすると思います:
std::istringstream buffer(msg);
std::vector<unsigned char> bbuffer;
unsigned int ch;
while (buffer >> std::hex >> ch)
bbuffer.push_back(ch);
あなたが本当に配列を主張するなら、次のようなことができます:
std::istringstream buffer(msg);
char bbuffer[12];
unsigned int ch;
for (int i=0; buffer >> std::hex >> ch; i++)
bbuffer[i] = ch & 0xff;
ただし、通常はベクターの方が適しています。