提问人:Jui-Chen Lo 提问时间:11/13/2023 更新时间:11/13/2023 访问量:52
Python 读取二进制文件但遗漏了一些字节
Python read binary file but miss some byte
问:
我试图使用 C++ 制作一些二进制文件并使用 python 进行读取。 这是我从互联网上得到的例子。 C++:
class CU {
public:
uint8_t widht;
uint8_t height;
uint16_t lx;
uint16_t ly;
};
int main(){
ofstream file("cu.dat", ios::out | ios::binary | ios:: trunc);
if(!file) {
cout << "Cannot open file!" << endl;
return 1;
}
CU cu;
cu.widht = 128;
cu.height = 128;
cu.lx = 128;
cu.ly = 128;
file.write((char*)&cu, sizeof(cu));
file.close();
return 0;
}
蟒
f = open("cu.dat", "rb")
data = f.read()
f.close()
print(data)
这是一个简单的程序。输出为 b'\x80\x80\x80\x00\x80\x00'
但是,如果 CU 的值较小,则有问题。 如果 CU.width 和 CU.height = 32 输出将为 b' \x80\x00\x80\x00' 或者如果 CU.width = 64 和 CU.height = 64 输出将为 b'@@\x80\x00\x80\x00'
我认为它将其读取为 UTF-8 编码。这是如何发生的,我应该怎么做才能避免这种情况?
解决二进制读取问题
答: 暂无答案
下一个:BST 输出差异 - 寻求解决
评论
ord(' ')
struct