如何将任何格式的文件读取为字符串以使用霍夫曼算法进一步压缩

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);

并对输出文件进行类似的更改。