我正在尝试将以下字节写入文件
[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;
}
答案 0 :(得分:2)
尝试添加
using byte = unsigned char;
在代码顶部,然后替换
int data[]
与
byte data[]
问题是您已经将其作为整数数据来解决,整数数据的大小可能会因操作系统架构和尾随零而有所不同,但是如果您使用char,则会自动为它分配最低的内存空间。