📄 main.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include "huffmantree.h"
#include "error_hander.h"
static const char *msg[] = { "How many characters will you input: ",
"Invalid input!! You should input an integer.",
"Failed to initialize huffman tree..." };
int main(void)
{
unsigned n;
int chk; /* 检查输入合法性 */
HuffmanTree ht;
HuffmanCode hc;
fputs( msg[0], stdout );
while ( ( chk = scanf("%u", &n) ) != 1 ) {
if ( chk != EOF ) {
flush_stdin();
}
printf("%s\n\n%s", msg[1], msg[0]);
}
flush_stdin();
if ( n < 2 ) {
error("%s\n", "no need to form huffman code...");
}
ht = init_hufftree(n);
if ( !ht ) {
error("%s\n", msg[2]);
}
creat_hufftree(ht, n); /* 形成赫夫曼树 */
hc = encode_hufftree(ht, n); /* 求赫夫曼编码 */
if ( !hc ) {
free(ht);
error("%s\n", "failed to form huffman code...");
}
print_huffcode(hc, ht, n); /* 输出赫夫曼编码 */
/* 释放内存 */
destroy_huffcode(hc, n);
free(ht);
printf("\n\nThanks for you using this software by wuquanganshe\nIf you have problem about it,please attach me through Email:wuquanganshe@126.com \n\n");
printf("Press ENTER to quit...");
getchar();
return EXIT_SUCCESS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -