Я нашел код:
static void PrintMACaddress(unsigned char MACData[])
{
printf("MAC Address: %02X-%02X-%02X-%02X-%02X-%02X\n",
MACData[0], MACData[1], MACData[2], MACData[3], MACData[4], MACData[5]);
}
эта функция печатает MAC-адрес как 00-53-45-00-00-00
Мой вопрос:
Как сделать такоеформатирования при печати в std::stringstream
?
Обновление:
Спасибо всем за советы!
Не знаю почему, но некоторые изрешения без static_cast<unsigned int>
дали мне странные символы, такие как ☻-0→-0M-0Ы-0m-0╜
Так что я выбираю версию Boost от icecrime :
void PrintMACaddressWithBoostFormat(unsigned char MACData[])
{
boost::format fmt("%02X-%02X-%02X-%02X-%02X-%02X");
for (int i = 0; i != 6; ++i)
{
fmt % static_cast<unsigned int>(MACData[i]);
}
std::stringstream valStream(fmt.str().c_str());
//testing
std::cout << "Boost version: " << valStream.str().c_str() << std::endl;
}
Palmik 's решение тоже отлично работает;)
Спасибо!