#include <fstream>
#include <streambuf>
#include <iostream>
// 大开文件
std::locale::global(std::locale(""));
std::ifstream textFile(strFileName.c_str());
if(!textFile.is_open())
{
return -1;
}
// 计算文件大小
textFile.seekg(0, std::ios::end);
std::streampos len = textFile.tellg();
textFile.seekg(0, std::ios::beg);
// 方法1
std::string strXMLData((std::istreambuf_iterator<char>(textFile)), std::istreambuf_iterator<char>());
// 方法2
std::string strXMLData;
strFileText.reserve(len); // 预先分配内存空间大小, 避免频繁分配内存
strFileText.assign(std::istreambuf_iterator<char>(textFile), std::istreambuf_iterator<char>());
// 方法3
std::stringstream ss;
ss << textFile.rdbuf();
std::string strXMLData = ss.str();
textFile.close();