Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Считать файл в двумерный массив 
:(
    Опции темы
AnnBlack
Дата 8.11.2017, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 3.11.2017

Репутация: нет
Всего: нет



Кто может помочь откорректировать код,чтоб содержание файла помещалось не в буфер,как код ниже,а в двумерный маасив?Массив попыталась написать(код ниже),проблема в том что не знаю как состыковать эти 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];

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0977 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.