C++ 哈夫曼编码,使用位写入filr
我写的哈夫曼算法,它建立树。 在我有了字符串中的1和0序列之后。 如何将它们逐位归档?我在互联网上找到了代码:C++ 哈夫曼编码,使用位写入filr,c++,encoding,C++,Encoding,我写的哈夫曼算法,它建立树。 在我有了字符串中的1和0序列之后。 如何将它们逐位归档?我在互联网上找到了代码: ofstream fout("out.txt", ios::out | ios::binary); for each(char s in bnr) { buf = buf | s << (7 - count); count++; if (count == 8) { count = 0; fout <<
ofstream fout("out.txt", ios::out | ios::binary);
for each(char s in bnr)
{
buf = buf | s << (7 - count);
count++;
if (count == 8)
{
count = 0;
fout << buf;
cout << buf;
buf = 0;
}
}
流fout的(“out.txt”,ios::out | ios::binary);
对于每个(bnr中的字符s)
{
buf=buf | s假设字符串由ascii字符“0”和“1”组成,则需要对示例代码稍作更改。此示例包含大部分逻辑
unsigned char buf = 0;
int count = 0;
int i = 0;
while(s[i] != '\0')
{
buf = buf | ((s[i++]-'0') << (7 - count));
count++;
if (count == 8)
{
count = 0;
fout << buf;
buf = 0;
}
}
if(count != 0)
fout << buf;
无符号字符buf=0;
整数计数=0;
int i=0;
而(s[i]!='\0')
{
BUF=Buf((S[i++] -''))<代码> Sthth< /Cord>?Huh?那是什么?看起来像C++ + CLI代码,不是C++ + SMT-我是指编码字符串,那么真正的问题呢?)这个问题似乎与赫夫曼编码没有太大关系。