字节向量到十六进制字符串流 DWORD 对齐



我想将存储在std::vector<unsigned char>中的字节转换为字符串流DWORD(4个字节)对齐。

例:

字节向量的内容:0x12 0x00 0x1B 0xAC 0x15 0xDF(6字节)

std::stringstream stream;
//stream << std::hex << std::setfill('0') << std::setw(8) ???

流应如下所示:12001BAC 000015DF

有没有一个简单的方法可以使用 std::copy 或如何实现它?

是你不想要循环吗?

for(int i=0; i < bytevector.size(); ++i)
{
    if ((0 != i) && (0 == (i%4)))
        stream << " ";
    stream << std::hex << std::setfill('0') << std::setw(2) << byteVector[i];
}

最新更新