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