⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 在win32下的文本huffman压缩以及文本的解压。
💻 CPP
字号:
#include<iostream>
#include<fstream>
using namespace std;
#include "MinHeap.h"
#include "HuffmanTree.h"
#define LOGO "Programe BY Linuxayn(06372064)"

int main(int argc,char *argv[])
{
	//Huffman [-c][-u] File1 File2
	//-c: Compress File1 to File2
	//-u: unCompress File1 to File2
	cout<<LOGO<<endl<<endl;
	char file1[30];
	string file_in;
	int k=0;
	switch(argc)
	{
	case 1:
		while(k!=4)
		{
			cout<<"-------------------------------------------\n";
			cout<<"Experiment 5:Tree and HuffmanCode\n";
			cout<<"  1.Code and UnCode by Typing\n";
			cout<<"  2.Compress a Exist File\n";
			cout<<"  3.UnCompress a Exist File\n";
			cout<<"  4.Exit\n";
			cout<<"Choise:";
			cin.clear();
			cin>>k;
			switch(k)
			{
			case 1:
				cout<<endl;
				Compress<Pack>::Do("-t");
				break;
			case 2:
				cout<<"  Open File:";
				//cin>>file1;
				fflush(stdin);
				cin.getline(file1,30);
				file_in=file1;
				if(file1[0]=='\"')
					file_in=file_in.substr(1,file_in.length()-2);	
				Compress<Pack>::Do("-c",(char *)file_in.c_str());
				break;
			case 3:
				cout<<"  Open File:";
				fflush(stdin);
				cin.getline(file1,30);
				file_in=file1;
				if(file1[0]=='\"')
					file_in=file_in.substr(1,file_in.length()-2);	
				Compress<Pack>::Do("-u",file1);
				break;
			default:
				break;
			}
		}
		break;
	case 3:
		Compress<Pack>::Do(argv[1],argv[2]);
		break;
	case 4:
		Compress<Pack>::Do(argv[1],argv[2],argv[3]);
		break;
	default:
		cout<<"Syntax Error!"<<endl;
		cout<<"Usage:"<<endl<<endl;
		cout<<"HUFFMAN [-c/-u] FILENAME1 [FILENAME2] "<<endl;
		cout<<"  -c: Compress Filename1 to filename2\n";
		cout<<"  -u: UnCompress Filename1 to filename2\n";
		cout<<"etc. \"HUFFMAN -c a.dat b.hfm\" will compress a.dat to b.hfm "<<endl;
		break;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -