Ich bin mit der Decodierung mit Huffman-Algorithmus stecken. Kurz im Abschnitt Dekomprimierung liest ifstream den Wert 0x1A als -1, der das Ende der Datei angibt. Woher?Lesen der Binärdatei Ausgabe
ifstream compressed_file;
buffer = compressed_file.get();
haben Sie Ihren Stream im Binärmodus ('' 'std :: ios :: binary''') geöffnet? auch, 'get()' gibt 'EOF' zurück (was normalerweise -1 ist), Sie haben das Ende der Datei erreicht. –
Sie sollten wahrscheinlich ein wenig mehr von Ihrem Code teilen. Offensichtlich ist C++ in der Lage, Binärdateien zu öffnen und Huffman-kodierte Daten zu entschlüsseln. Das Problem liegt also in etwas, das Sie nicht mit uns geteilt haben. – Rook
'ifstream :: get 'gibt ein' int' zurück, das mit 'eof()' value (das ist typischerweise -1) verglichen und dann in 'char' umgewandelt werden soll. In Ihrem Code-Snippet ist keine Datei geöffnet, sodass das Lesen aus dem Stream nicht möglich ist und Sie nur EOF erhalten. – VTT