2017-12-18 197 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 –