📄 get_frequency.h
字号:
#include<iostream>
/***************************************
* 蔡敏
***************************************/
using namespace std;
#include "huffcode&decode.h"
void get_frequency(char* filename,char* dir)
{
int i,j=0;
char ch;
ifstream infile;
unsigned long chs[256]={0};// 每个字符出现的频率
infile.open(filename,ios_base::binary);
infile.get(ch);
while(!infile.eof()) {
chs[(unsigned char)ch]++;
infile.get(ch);
}
// 非0频率字符及其出现频率集合
char_record w[256];
memset(w, 0, sizeof(w));
for(i=0;i<=255;i++) {
if(chs[i]!=0){
w[j].weight=chs[i];
w[j].ascii_code=(unsigned char)i;
j++;
}
}
for(i=0;w[i].weight!=0&&i<=255;i++)//这个循环是用来过滤掉权值为零的字符
;
// 此时i为非0频率出现的字符的数目
HaffNode* ht = hufftree(w, i);//建立hufftree
HaffCode* hc = huff_encode(w, i, ht);
HaffCompress(hc,i,filename,w,dir);//压缩文件
infile.close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -