如何将任何格式的文件读取为字符串以使用霍夫曼算法进一步压缩
How to read any format of file to string for further compression with Huffman algorithm
如何读取任何格式的文件(doc、pdf、jpeg)?我的版本只适用于 txt,所以我无法正确解压缩文件。
我的读取输入文件的函数:
std::string getDataFromFileToString(std::string &fName)
{
std::string s;
std::ifstream fr(fName, std::ios_base::in | std::ios::binary);
if (!fr.is_open())
{
std::cerr << "File \"" << fName << "\" does not exist\n";
exit(EXIT_FAILURE);
}
char c;
while(fr.get(c))
s.push_back(c);
fr.close();
return s;
}
如果它只能正确处理文本文件,您可能需要以二进制模式打开文件:
改变
std::ifstream fr(fName, std::ios_base::in);
至
std::ifstream fr(fName, std::ios_base::in | std::ios::binary);
并对输出文件进行类似的更改。
如何读取任何格式的文件(doc、pdf、jpeg)?我的版本只适用于 txt,所以我无法正确解压缩文件。
我的读取输入文件的函数:
std::string getDataFromFileToString(std::string &fName)
{
std::string s;
std::ifstream fr(fName, std::ios_base::in | std::ios::binary);
if (!fr.is_open())
{
std::cerr << "File \"" << fName << "\" does not exist\n";
exit(EXIT_FAILURE);
}
char c;
while(fr.get(c))
s.push_back(c);
fr.close();
return s;
}
如果它只能正确处理文本文件,您可能需要以二进制模式打开文件:
改变
std::ifstream fr(fName, std::ios_base::in);
至
std::ifstream fr(fName, std::ios_base::in | std::ios::binary);
并对输出文件进行类似的更改。