【问题标题】:C++ fastest way to read file line by line [duplicate]C ++逐行读取文件的最快方法[重复]
【发布时间】:2018-07-10 17:59:51
【问题描述】:

我不想要任何提升依赖或任何外部的东西。我可以逐行读取文件,并分别处理每一行。但如果效果更好,我也可以将整个文件加载到内存中,然后逐行处理。

最好的方法是什么?另外,最快的方法是什么,它们有何不同?

此外,这既适用于常规文本文件,也适用于通过终端传输文件。

【问题讨论】:

  • 我找到了这个关于使用 ifstream 的参考,但没有足够的细节lemire.me/blog/2012/06/26/…
  • 您想要最好的方法还是最快的方法?你可能不能两者兼得。
  • 为什么要逐行阅读?将所有文件内容作为一个整体读取然后逐行处理很可能会更快
  • @UKMonkey 哦,你不知道吗?他们不应该学习,他们应该从这个神圣的网站上消失——我当然是在开玩笑。但这就是大部分 SO 用户的行为方式。

标签: c++ file-io


【解决方案1】:

只需使用std::getline。非常简单的解决方案:

std::ifstream file("filePath");
std::string line;
while (std::getline(file, line)) {
    // line contains the current line
}

【讨论】:

  • 谢谢。如果我必须通过管道读取,即通过终端传输文本文件,这将如何改变?
  • @BaronYugovich:如果您只是输入标准输入,只需使用类似std::getline(std::cin, line) 的内容。
猜你喜欢
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
  • 2015-05-19
  • 2020-02-21
  • 2011-08-13
  • 2011-12-23
相关资源
最近更新 更多