2017-12-18 249 views
-2

如何將一個字符串表達式(「01010..01」只有0和1)轉換爲.dat文件? 我想在Huffman dat文件中註冊一個由0和1組成的字符串表達式。我讀了一個txt文件,並在我讀的txt文件中找到單詞的哈夫曼代碼。我想用每個哈芬霍夫曼的代碼對每個.dat文件進行二進制化。由於dat文件的大小比我的代碼中的txt文件大,我想我把它寫成了一個字符串。如何寫成二進制。我使用C++和g ++編寫代碼。C++二進制文件寫入

+0

請閱讀[「我如何提出一個好問題?」](https://stackoverflow.com/help/how-to-ask),然後相應地編輯您的答案。 – chb

回答

1

您需要將二進制字符串轉換爲二進制數據。所以你需要創建一個無符號整數(或無符號字符)的數組,其中每個整數(或字符)將表示32(或8)二進制位。一旦你準備好了這些整數(字符),你就可以將它們保存在文件中。

如果您沒有足夠的二進制位填充最後一個元素,請用零填充。

+0

示例字符串huffmanCode =「10101」;我如何在C++ –

+0

中翻譯這個unsignedint,如果你huffmanCode =「01000001」,那麼作爲無符號字符它將被表示爲「A」。您需要了解C中的位操作來解決此問題。 –

+0

如果你回答我會很高興將對你負責。我使用huffman算法在C++中創建txt den huffman代碼。正如你所知,我創建的代碼是0和1。使用這些代碼創建一個新的dat文件,然後編寫與每個字母對應的huffman代碼的數據文件。但是dat文件的大小比我的txt文件大。如何在dat文件中編寫代碼以使這些代碼尺寸更小?我一直無法獲得結果。我已經表示感謝。我期待着您的回覆。和dat文件只創建0和1 –