相关疑难解决方法(0)

用c ++快速读取文本文件

我目前正在用c ++编写一个程序,其中包括阅读大量的大文本文件.每行有~400.000行,极端情况下每行有4000或更多字符.仅供测试,我使用ifstream和cplusplus.com提供的实现读取其中一个文件.花了大约60秒,这太长了.现在我想知道,有没有一种直接的方法来提高阅读速度?

编辑:我使用的代码或多或少是这样的:

string tmpString;
ifstream txtFile(path);
if(txtFile.is_open())
{
    while(txtFile.good())
    {
        m_numLines++;
        getline(txtFile, tmpString);
    }
    txtFile.close();
}
Run Code Online (Sandbox Code Playgroud)

编辑2:我读的文件只有82 MB大.我主要说它可以达到4000,因为我认为可能有必要知道为了做缓冲.

编辑3:谢谢大家的答案,但考虑到我的问题似乎没有太大的改进空间.我必须使用readline,因为我想计算行数.将ifstream实例化为二进制文件也不会使读取速度更快.我将尝试尽可能地并行化它,至少应该起作用.

编辑4:显然我可以做一些事情.非常感谢你花了这么多时间,我非常感激!=)

c++ io performance ifstream

58
推荐指数
4
解决办法
6万
查看次数

标签 统计

c++ ×1

ifstream ×1

io ×1

performance ×1