0
私はハフマンアルゴリズムを使用してデコードに固執しています。解凍セクションの短い部分ifstreamは、ファイルの終わりを示す-1として0x1Aの値を読み込みます。どうして?バイナリファイルの問題を読む
ifstream compressed_file;
buffer = compressed_file.get();
私はハフマンアルゴリズムを使用してデコードに固執しています。解凍セクションの短い部分ifstreamは、ファイルの終わりを示す-1として0x1Aの値を読み込みます。どうして?バイナリファイルの問題を読む
ifstream compressed_file;
buffer = compressed_file.get();
Windowsなど一部のオペレーティングシステムは、テキストファイルの終わりを表現するには、Ctrl-Z(0x1A)を使用します。バイナリモードで
てみ開口部:
ifstream compressed_file("My_File.dat", ios::binary);
compressed_file.read(buffer, quantity);
バイナリモードでは、入力ファイルから読み取られたデータに任意の変換を適用しないことを意味します。
実際には、 "ios :: binary"引数を追加するだけで動作しました。どうもありがとう! –
ストリームをバイナリモード( '' 'std :: ios :: binary''')で開いたことはありますか? 'get()'は 'EOF'を返します(通常は-1)。ファイルの最後に達しました。 –
あなたのコードをもう少し共有してください。明らかに、C++はバイナリファイルを開き、ハフマン符号化されたデータをデコードすることができるので、問題はあなたが私たちと共有していないものにあります。 – Rook
'ifstream :: get'は' eof() '値(通常は-1)と比較され、次に' char'にキャストされる 'int'を返します。コードスニペットでは、ファイルは開かれていないので、ストリームからの読み取りは不可能であり、EOFのみを提供します。 – VTT