📄 main.c
字号:
/*
* 作者:antigloss at http://cpp.ga-la.com
* 最后修改:05-10-2 15:35
* 蚂蚁的 C/C++ 标准编程
*/
#include <stdio.h>
#include <stdlib.h>
#include "header/huffmantree.h"
#include "mylib/error_handler.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\nWaiting for your visit to http://cpp.ga-la.com again!\n\n"
"Press ENTER to quit...");
getchar();
return EXIT_SUCCESS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -