Кто может помочь откорректировать код,чтоб содержание файла помещалось не в буфер,как код ниже,а в двумерный маасив?Массив попыталась написать(код ниже),проблема в том что не знаю как состыковать эти 2 куска кода. И не знаю,что поместить в переменную result в массиве..там по сути файл должен быть Код считывания файла в буфер: Код | #include "stdafx.h" using namespace std; /* fread example: read a complete file */ int main () { FILE * pFile;//переменная pFile является указателем файла long lSize; unsigned char *buffer;//используется для объявления переменной buffer size_t result; pFile = fopen ("D:\\\C++\\gabor.raw" , "rb" );//мы передаем переменной pFile некоторую информацию,fopen – это функция в Си, которая используется для того, чтобы открыть файл if (pFile==NULL) {fputs ("File error",stderr); exit (1);} // obtain file size: fseek (pFile , 0 , SEEK_END);//ищет позицию файла.0 – смещение Ноль означает, что мы хотим начать запуск с начала.SEEK_END — отчитываем позицию до конца файла lSize = ftell (pFile);//сохраняем возвращаемое значение ftell() в lSize. rewind (pFile);//функция перемотки заново открывает файл с начала. Она имеет только один аргумент, указатель на начало файла. Таким образом, файл запущен для повторного использования. // выделяю память для файла buffer = (unsigned char*) malloc (sizeof(unsigned char)*lSize); if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);} // copy the file into the buffer: result = fread (buffer,1,lSize,pFile);//считывание блока данных из файла в буфер обмена if (result != lSize) {fputs ("Reading error",stderr); exit (3);} /* the whole file is now loaded in the memory buffer. */ // terminate fclose (pFile);//брасывает любые буферы, сохраняемые для данного файла, и закрывает файл cout«buffer; //Выводим значение s1 на экран free (buffer); cin.get(); }
|
Двумерный массив: Код | unsigned char **array = new unsigned char* [483]; // 483 строки в массиве for (int count = 0; count < 483; count++) array[count]=new unsigned char[862];//862 столбца в массиве //заполнение массива for (int count_row= 0; count_row < 483; count_row++) for (int count_column = 0; count_column < 862; count_column++) array[count_row][count_column]=result; // вывод массива for (int count_row = 0; count_row < 2; count_row++) { for (count_column = 0; count_column < 5; count_column++) cout << array[i][j] ; cout << endl; } // удаление двумерного динамического массива for (int count = 0; count < 483; count++) delete []array[count];
|
|