Я пытаюсь написать кодировщик Хаффмана, но получаю некоторые ошибки сжатия. Я идентифицировал проблему как несоответствие между символами, которые были помещены () в ofstream, и символами, читаемыми () из того же файла.
Один конкретный случай этой проблемы:
- Метод put () записывает символ ASCII 10 (перевод строки)
- read () читает символ 13 ASCII (возврат каретки)
Я думал читать и помещать чтение и запись необработанных данных (без перевода символов) Я не уверен, почему это происходит Кто-нибудь может мне помочь?
Вот экземпляр ofstream для записи сжатого файла:
std::ofstream compressedFileStream(getCompressedFileName(),std::ios::binary||std::ios::ate);
и экземпляр ifstream для чтения того же
std::ifstream fileInput(getFileName()+".huf",std::ios::binary);
Код работает в Windows 7, и все потоки в программе открываются в двоичном режиме.