C++ 如何将任何格式的文件读取为字符串,以便使用哈夫曼算法进行进一步压缩

C++ 如何将任何格式的文件读取为字符串,以便使用哈夫曼算法进行进一步压缩,c++,compression,readfile,C++,Compression,Readfile,如何读取任何格式的文件(doc、pdf、jpeg)?我的版本只能使用txt,所以我无法正确解压缩文件 从输入文件读取的My函数: std::string getDataFromFileToString(std::string &fName) { std::string s; std::ifstream fr(fName, std::ios_base::in | std::ios::binary); if (!fr.is_open()) {

如何读取任何格式的文件(doc、pdf、jpeg)?我的版本只能使用txt,所以我无法正确解压缩文件

从输入文件读取的My函数:

    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::string getDataFromFileToString(std::string&fName)
{
std::字符串s;
std::ifstream fr(fName,std::ios|u base::in | std::ios::binary);
如果(!fr.处于打开状态())
{

如果它只正确处理文本文件,则可能需要以二进制模式打开文件:

改变

std::ifstream fr(fName,std::ios_base::in);

std::ifstream fr(fName,std::ios_base::in | std::ios::binary);


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

如果它只正确处理文本文件,则可能需要以二进制模式打开文件:

改变

std::ifstream fr(fName,std::ios_base::in);

std::ifstream fr(fName,std::ios_base::in | std::ios::binary);


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

这对我有帮助。我还将字符串更改为矢量。我还将字符串更改为矢量