Прочитать файл как байтовый массив [закрыто]

У меня есть задание по кодированию алгоритма Хаффмана. У меня вся проблема организована в моей голове, но у меня проблемы с обработкой файлов.

Проблема в том, что алгоритм должен сжимать ЛЮБОЙ тип файла.

Мое решение: прочтите файл как массив байтов, затем с массивом int [256] = {0} для каждого байта получить это int n соответствующее значение и увеличивает массив array [n] . Если я не прояснил это, дайте мне знать.

Итак, я провел много исследований, но не понимаю, как получить байты из ЛЮБОГО типа файла и как обрабатывать их.


  ФАЙЛ * fileptr; char * buffer; long filelen; fileptr = fopen ("myfile.txt", "rb"); //Открываем файл в двоичном режиме fseek (fileptr, 0, SEEK_END); //Перейти в конец файлаfilelen = ftell (fileptr); //Получение текущего байтового смещения в файлеrewind (fileptr); //Возвращаемся к началу файлового буфера = (char *) malloc (filelen * sizeof (char)); //Достаточно памяти для файла fread (buffer, filelen, 1, fileptr); //Читаем весь файл fclose (fileptr); //Закрываем файл  

Теперь у вас есть массив байтов, содержащий содержимое файла.


0

Как насчет попытки ввода-вывода двоичного файла:

  FILE * f = fopen (  "example.bin", "rb");  char c; //цикл для каждого байта до конца {size_t fread (& c, (size_t) 1, (size_t) 1, f);  массив [c] ++;  }  

Или что-то вроде этого !!

Поделиться
Улучшить этот ответ
ответил 27 февраля 2014 г. в 16:53
добавить комментарий |

Как насчет попытки ввода-вывода двоичного файла:

  FILE * f = fopen ("  example.bin »,« rb »);  char c; //цикл для каждого байта до конца {size_t fread (& c, (size_t) 1, (size_t) 1, f);  массив [c] ++;  }  

Или что-то вроде !!

Оцените статью
Botgadget.ru
Добавить комментарий