unsigned char[] nach std::string konvertieren?
-
Hallo, ich habe folgende Code:
std::string str;
unsigned char mac[6];
mac[0] = 0x08;
mac[1] = 0x00;
mac[2] = 0x06;
mac[3] = 0xa8;
mac[4] = 0x00;
mac[5] = 0x02;wie kann ich "mac" nach "str" umwandeln und ausgeben lassen?
-
unsigned char mac[6]; mac[0] = 0x08; mac[1] = 0x00; mac[2] = 0x06; mac[3] = 0xa8; mac[4] = 0x00; mac[5] = 0x02; std::ostringstream oss; oss << std::hex; for (long i = 0; i < 6; ++i) { oss << mac[i]; } std::string str = oss.str(); std::cout << str;
-
#include <string> #include <sstream> #include <iomanip> //... size_t const items = 6; unsigned char mac[items] = {0x08, 0x00, 0x06, 0xA8, 0x00, 0x02}; //... std::stringstream sstr; sstr << std::hex << std::setfill('0'); for(size_t n = 0; n != items; ++n) { sstr << std::setw(2) << static_cast<unsigned>(mac[n]); } std::string str = sstr.str();
-
... falls er unter "konvertieren" auch "lesbar machen" versteht.
Ansonsten:
string mac("\x08\x00\x06\xa8\x00\x02", 6); // oder string mac; mac.resize(6); mac[0] = 0x08; mac[1] = 0x00; mac[2] = 0x06; mac[3] = 0xa8; mac[4] = 0x00; mac[5] = 0x02; // oder string mac; mac.push_back(0x08); mac.push_back(0x00); mac.push_back(0x06); mac.push_back(0xa8); mac.push_back(0x00); mac.push_back(0x02); // oder ....
(den würde ich dann aber über thetas Weg ausgeben lassen)
Gruß,
Simon2.
-
unsigned char test[8]; std::string s; s.assign((char*)&test[0], sizeof(test));
-
Danke für eure alle Antworten!
Die Code von Tachyon hat funktioniert!