我正在尝试从我读取的文件中获取 int 值。诀窍是我不知道这个值有多少字节,所以我首先读取长度八位字节,然后尝试读取长度八位字节告诉我的尽可能多的数据字节。当我尝试将数据八位字节放入 int 变量并最终打印它时,问题就出现了 - 如果第一个数据八位字节为 0,则仅复制后面的一个,因此我尝试读取的 int 是错误的,如 0x00A2与 0xA200 不同。如果我使用 ntohs 或 ntohl,那么 0xA200 会被错误地解码为 0x00A2,因此它不能解决空洞问题。我正在像这样使用 memcpy:
memcpy(&dst, (const *)src, bytes2read)
Run Code Online (Sandbox Code Playgroud)
其中 dst 是 int,src 是 unsigned char *,bytes2read 是 size_t。
那么我做错了什么?谢谢!