我正在尝试将以下字节写入文件
[03 00 01 00 FF 00 00 00 FF 00 00 00 FF]
但我不断添加以下字节到最后
[03 01 0F C0 00 08 00 A0 00 C7 00 00 00 02 00 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
我已经阅读了,并且我被告知在打开文件时使用std::ios::binary
,这似乎没有帮助。这是我的代码
#include <fstream>
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
int main() {
int height = 1,
length = 3;
int data[] = {
0x3,0x0,0x1,0x0,
0xff, 0x0, 0x0,
0x0, 0xff, 0x0,
0x0, 0x0, 0xff
};
ofstream file("thing.dki", std::ios::binary);
for(int i = 0; i < sizeof(data); i++) {
file.write((char*) &data[i], 1);
}
file.close();
return 0;
}
尝试添加
using byte = unsigned char;
到你的代码顶部,然后替换
int data[]
同
byte data[]
问题是你已经将它作为整数数据来解决,它可以根据你的操作系统架构和尾随零来改变大小,但是如果你使用char而是自动分配最小的内存空间。