ハフマンエンコーダーを書き込もうとしていますが、圧縮エラーが発生します。この問題は、ofstreamにput()された文字と、同じファイルのread()文字との不一致であると特定しました。
この問題の1つの特定の例:
- put()はASCII文字10(改行)を書き込みます
- read()はASCII文字13を読み取ります(キャリッジリターン)
生データの読み取りと書き込み(文字変換なし)を考えました。なぜこれが発生するのかわかりません。誰かが私を助けることができますか?
圧縮ファイルを書き込むためのofstreamインスタンスは次のとおりです。
std::ofstream compressedFileStream(getCompressedFileName(),std::ios::binary||std::ios::ate);
同じものを読み取るためのifstreamインスタンス
std::ifstream fileInput(getFileName()+".huf",std::ios::binary);
コードはWindows7で実行されており、プログラム内のすべてのストリームはバイナリモードで開かれています。