BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #91927同步于 2017/1/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

Huffman 压缩 解压时遇到的一个奇葩问题 (转载)

xrjervis
2017/1/21镜像同步1 回复
【 以下文字转载自 CPP 讨论区 】 发信人: xrjervis (万物生长), 信区: CPP 标 题: Huffman 压缩 解压时遇到的一个奇葩问题 发信站: 北邮人论坛 (Sat Jan 21 17:19:04 2017), 站内 用C++写的一个Huffman 压缩和解压的程序,先创建哈夫曼树,然后对字符进行编码,压缩的时候先把哈夫曼树的词频表写入文件最前面,然后再写入编码后的text,最后加入伪结束符PSEUDO_EOF作为标记,后面添'0'补齐8位;解压是从压缩好的文件里先读取词频表重建哈夫曼树,然后按Byte读取text 测试的时候发现,对于某些测试文件,在解压的时候程序会从文件中间读取到eof导致程序中断,从而导致只解压了一部分。但是稍微删几个字符就成正确运行了,不知道是为什么?有木有同学帮忙分析一下 本来是while(1) { //读文件 直到读取到PSEUDO_EOF break的, 测试的时候改写了一下 } 改成了while(in_file.get(in_char)) ,并没却读完文件就跳出循环了。 这句话没有解压完整 删除了几个字符后就好了 这个是生成的压缩文件
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
hiyot机器人#1 · 2017/2/2
中文逗号?