//Firstly get the dictionary from file void HuffmanEncoder::BuildFromTermFrequency(const char* filename) { FILE* fid; fid = fopen(filename, "r"); if (fid) { char sz_label[kMaxWordSize]; dict_ = new (std::nothrow)Dictionary(); assert(dict_ != nullptr); //while (fscanf_s(fid, "%s", sz_label, kMaxWordSize) != EOF) while (fscanf(fid, "%s", sz_label) != EOF) { HuffLabelInfo info; int freq; fscanf(fid, "%d", &freq); dict_->Insert(sz_label, freq); } fclose(fid); BuildHuffmanTreeFromDict(); } else { multiverso::Log::Error("file open failed %s", filename); } }
void HuffmanEncoder::BuildFromTermFrequency(const char* filename) { FILE* fid; fopen_s(&fid, filename, "r"); if (fid) { char sz_label[MAX_WORD_SIZE]; m_dict = new Dictionary(); while (fscanf_s(fid, "%s", sz_label, MAX_WORD_SIZE) != EOF) { HuffLabelInfo info; int freq; fscanf_s(fid, "%d", &freq); m_dict->Insert(sz_label, freq); } fclose(fid); BuildHuffmanTreeFromDict(); } else { printf("file open failed %s", filename); } }
void HuffmanEncoder::BuildFromTermFrequency(Dictionary* dict) { dict_ = dict; BuildHuffmanTreeFromDict(); }