我正在通过std::basic_ifstream<std::uint8_t>
. 我在读取应解释为 32 位 int 的 4 字节序列时遇到问题。
std::uint32_t read_chunk_length(std::basic_ifstream<std::uint8_t> &ifs) {
std::uint32_t length;
ifs.read(reinterpret_cast<std::uint8_t*>(&length), 4);
return length;
}
当读取一个 00 00 00 0d 并且因此应该是 0xd (或 13)的序列时,上面的函数给我 0xd000000 (或 218103808 代替)。如果问题微不足道,请道歉。