0
我定义为字节数组:字节写入到文件
unsigned char * pixels = new unsigned char[pixelsLen];
,我想从这个阵列中的所有字节写入.bmp
文件。
这是怎么回事不起作用:
ifstream screen ("input.bmp", ios::binary | ios::in);
ofstream output ("output.bmp", ios::binary | ios::out | ios::app);
output.write((char *)&pixels, pixelsLen);
output.close();
这是怎么做的工作:
ifstream screen ("input.bmp", ios::binary | ios::in);
ofstream output ("output.bmp", ios::binary | ios::out | ios::app);
for (size_t i = 0; i < pixelsLen; i++) {
output.write((char *)&pixels[i], 1);
}
output.close();
的问题是,为什么当我在写它字节的工作原理是字节,不当我试图一次写入时不工作?
从第二个样本看起来像像素已经是一个指针或数组。 '(char *)&像素'的几率非常好,你不想在第一个样本中使用'&'。 – user4581301
请注意'&像素'返回一个指向指针的指针,为什么要这么做? –