我正在尝试使用流操纵器解析文件。但是,由于std::uint8_t
, std::uint16_t
, std::uint32_t
from的 operator>> 重载<istreams>
是一个格式化的输入函数,它会读取一个字符串,并在必要时将其转换为一个数字。所以它会解析23
为23
而不是二进制00000010 00000011
表示515
。
您可以使用以下inputstream.read()
方法执行此操作reinterpret_cast<>
:
is.read(reinterpret_cast<char*>(data), sizeof(*data));
现在我的问题 - 是否可以实现覆盖 >> 运算符的默认行为,以便我可以使用 >> 运算符读取此类 std:uint 类型?我将如何实现它以及如何在运营商之间切换?如果不可能,您是否知道实现流操纵器进行解析的好方法?