Если бы у меня был буфер вроде:
uint8_t buffer[32];
, и он был полностью заполнен значениями, как бы я мог поместить его в поток строк в шестнадцатеричном представлении с заполнением нулями небольших значений?
Я пробовал:
std::stringstream ss;
for (int i = 0; i < 32; ++i)
{
ss << std::hex << buffer[i];
}
, но когда я извлекаю строку из потока, у меня возникает проблема: байты со значениями <16 принимают только один символ для представления, и я бы хотел, чтобы они были дополнены 0.
Например, если бы байты 1 и 2 в массиве были {32} {4}, мой поток строк имел бы:
204 instead of 2004
Могу ли я применить форматирование к потоку строк, чтобы каким-то образом добавить заполнение нулями? Я знаю, что могу сделать это с помощью sprintf, но потоки уже используются для большого количества информации, и это было бы большим подспорьем для достижения этой цели.