Я открываю файл 3,5 МБ на C, читая его в массиве без знака. Данные изображения, которые я инициализировал следующим образом:
unsigned char *** Imagedata;
Imagedata = new unsigned char**[1278];
for(int i=0; i<1278; i++){
Imagedata[i]= new unsigned char*[968];
for(int j=0; j<968; j++){
Imagedata[i][j]= new unsigned char[3];
}
}
Теперь я открываю файл и читаю его в массив как:
ifstream ifile;
ifile.open("abcde.raw", ios::in|ios::binary);
for(int i=0; i<1278; i++){
for(int j=0; j<968; j++){
for(int k=0; k<3; k++){
ifile>>Imagedata[i][j][k];
}
}
}
ifile.close();
Следующий шаг - просто переписать байты в новый файл ... который я называю rawfile .. Я пытался добиться этого следующим образом:
ofstream myfile;
myfile.open("rawfile.raw", ios::out|ios::binary);
for(int i=0; i<1278; i++){
for(int j=0; j<968; j++){
myfile.write((char *)Imagedata[i][j],3*sizeof(unsigned char));
}
}
myfile.close();
Кажется, что-то не работает .. файл изображения, который я получаю, является мусором ... в чем может быть проблема?