2017-12-18 2 views
-2

Wie kann ich einen String-Ausdruck ("01010..01" nur 0 und 1) in eine .dat-Datei binär? Ich möchte einen String-Ausdruck bestehend aus 0 und 1 in der Huffman-Datendatei registrieren. Ich lese eine TXT-Datei und finde den Huffman-Code der Wörter in der txt-Datei, die ich gelesen habe. Ich möchte jede .dat Datei mit dem Code für jeden harfin huffman binär. Da die Größe der Datendatei größer als die txt-Datei in meinem Code ist, habe ich sie als String geschrieben. Wie schreibe ich als Binärdatei? Ich schreibe Code mit C++ und G ++.C++ Binärdatei schreiben

+0

Bitte lesen Sie ["Wie stelle ich eine gute Frage?"] (Https://stackoverflow.com/help/how-to-ask) und bearbeiten Sie dann Ihre Antwort entsprechend. – chb

Antwort

1

Sie müssen die binäre Zeichenfolge in binäre Daten konvertieren. Sie müssen also ein Array von Ganzzahlen ohne Vorzeichen (oder ohne Vorzeichen) erstellen, wobei jede Ganzzahl (oder jedes Zeichen) 32 (oder 8) Binär-Bits darstellt. Sobald Sie diese Integer (Zeichen) bereit haben, können Sie sie in der Datei speichern.

Wenn Sie nicht genug binäres Bit haben, um das letzte Element zu füllen, füllen Sie es mit Null.

+0

Beispielstring huffmanCode = "10101"; wie übersetze ich diese unsignedint in C++ –

+0

wenn Sie huffmanCode = "01000001" dann als unsigned char wird es als "A" dargestellt. Sie müssen etwas über bitweise Operationen in C lernen, um dieses Problem zu lösen. –

+0

Ich werde sehr glücklich sein, wenn Sie antworten, wird eine Verantwortung für Sie sein. Ich erstelle Txt den Huffman-Codes in C++ mit dem Huffman-Algorithmus. Die Codes, die ich erstellt habe, sind 0 und 1, wie du weißt. Unter Verwendung dieser Codes erstelle ich eine neue Datendatei und schreibe die Datendatei des Huffman-Codes, der jedem Buchstaben entspricht. Aber die Größe der Datendatei ist größer als meine TXT-Datei. Wie schreibe ich in die Datendatei, damit diese Codes kleiner sind? Ich konnte keine Ergebnisse erzielen. Ich danke schon. Ich freue mich auf Ihre Antwort. Und dat file create 0 und 1 nur –