我一直试图解决这个问题。
阅读文本文件。
使用此代码将格式化替换为getline ...但加载文件的时间太长了......
std::string line = "";
std::string file = "";
std::ifstream filepath(path);
if (filepath.is_open())
{
while (std::getline (filepath,line) )
{
file = file + line + "\r\n";
}
filepath.close();
}
使用此代码加载文件的时间大约快10倍,但格式化丢失了:
std::ifstream in(path);
std::stringstream stream;
stream << in.rdbuf();
std::string file(stream.str());
是否有可能通过第一种方法的格式化来获得第二种方法的速度?或者更好但速度更快,格式没有变化?
我曾考虑过不要在循环中的每个getline的第一个示例中继续加载相同的字符串,但早期尝试似乎没有帮助。
答案 0 :(得分:0)
好的再次检查后,不确定这是什么叫但是这个字符串优化处理了延迟和格式化......哇!
如果有人知道如何让它更快,我很乐意学习......
std::string line = "";
std::string file = "";
std::string tmp_str = "";
std::ifstream filepath(path);
unsigned int c = 0;
if (filepath.is_open())
{
while (std::getline (filepath,line) )
{
tmp_str = tmp_str + line + "\r\n";
c++;
if (c > 100)
{
file = file + tmp_str;
tmp_str = "";
c = 0;
}
}
if (c != 0)
{
file = file + tmp_str;
}
filepath.close();