|
0 / 0 / 1
Регистрация: 14.02.2017
Сообщений: 102
|
||||||
Хаффман. Выводит лишний элемент09.12.2017, 17:32. Показов 2744. Ответов 32
Метки нет (Все метки)
Здравствуйте. Делаю алгоритм Хаффмана через файлы. Но есть одна проблема, которую я понять не могу. Когда считываю пустой файл, то в таблице бинарных кодов для элементов, вместо пустоты как и в других файлах(кодированный файл, раскодированный файл), появляется буква "я". Если в файле написать текст, то в таблице все буквы + эта буква "я" при чем все буквы и знаки препинания с бинарными кодами, а буква "я" без кода -> (я : ). - В принципе понятно почему она без кода, но не могу понять откуда она берётся. В раскодированном файле тот же самый текст, но после точки стоит эта буква "я". И есть случай, если не поставить знак препинания в тексте, то в раскодированном файле будет весь тот же самый текст, но без последней буквы и буквы "я" там нет, но в таблице она всё ровно есть. Помогите пожалуйста разобраться с этой проблемой. Вроде говорят, что проблема в eof() и надо вроде поставить size(), куда не понимаю.
0
|
||||||
| 09.12.2017, 17:32 | |
|
Ответы с готовыми решениями:
32
Список, выводит лишний нолик Лишний раз выводит сообщение Контейнер map. Выводит лишний символ |
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 16.12.2017, 07:25 | |
|
0
|
|
|
0 / 0 / 1
Регистрация: 14.02.2017
Сообщений: 102
|
||||||
| 16.12.2017, 17:00 [ТС] | ||||||
|
nmcf, ок.
Вот:
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 16.12.2017, 19:31 | |
|
m.size() в 62-й строке надо проверять.
После цикла в 126 у тебя может быть не дозаписан последний блок, если последний байт не заполнился до конца (count > 0).
0
|
|
|
0 / 0 / 1
Регистрация: 14.02.2017
Сообщений: 102
|
|
| 16.12.2017, 19:46 [ТС] | |
|
nmcf, В смысле надо добавить (count>0)? А в какую строку?
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 16.12.2017, 20:19 | |
|
После цикла проверяй и делай запись buf.
1
|
|
|
0 / 0 / 1
Регистрация: 14.02.2017
Сообщений: 102
|
|
| 16.12.2017, 20:38 [ТС] | |
|
nmcf,
я наверно туплю, потому что я не понимаю в какой номер строки вставить if (count>0). Я только смотрю на 131 строку, потому что там идёт запись buf.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 16.12.2017, 21:17 | |
|
134.
0
|
|
|
0 / 0 / 1
Регистрация: 14.02.2017
Сообщений: 102
|
||||||
| 16.12.2017, 22:13 [ТС] | ||||||
|
nmcf, я добавил в 134 строчку:
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 16.12.2017, 23:08 | |
|
Потому что остаток байта нулями заполнен. Надо как-то сохранять это в файл. Самое простое - записать размер исходного файла.
0
|
|
|
0 / 0 / 1
Регистрация: 14.02.2017
Сообщений: 102
|
|
| 16.12.2017, 23:22 [ТС] | |
|
nmcf, И как это правильно сделать и написать?
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 16.12.2017, 23:39 | |
|
Определить размер и записать целое в в начало файла, например. И так же извлечь при декодировании.
0
|
|
|
0 / 0 / 1
Регистрация: 14.02.2017
Сообщений: 102
|
||||||
| 17.12.2017, 15:17 [ТС] | ||||||
|
nmcf, типо
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 17.12.2017, 21:29 | |
|
В цикл подсчёта частот счётчик добавь. Это и будет размер. После запишешь его в файл через write().
0
|
|
| 17.12.2017, 21:29 | |
|
Скрипт выводит лишний элемент массива
Лишний элемент-полоса лишний элемент массива mysql_fetch_array Как удалить лишний спарсенный элемент? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|