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
請注意'&像素'返回一個指向指針的指針,爲什麼要這麼做? –