据我了解,要分析一个文本文件,首选方法是逐行分析,既简单又高效。
但是,当我们处理一个包含所有文本的大文件时,getline() 函数肯定不会有效。我想知道是否有其他有效的方法来分析这个巨大的文件?
我唯一想到的就是将这一巨大的行存储到一个字符串变量中,然后将其切割成单字。但这听起来仍然效率不高。
请帮忙。谢谢!
最佳答案
您可以使用 std::istream::get(char *, std::streamsize)
将文件的大块读取到适当大的缓冲区中,然后逐个处理文件,大块。
或者,也可以使用特定于操作系统的方法。在 Linux 上,可以使用文件的只读 mmap()
来浏览它,而无需大惊小怪。
关于c++ - 在 C++ 中不使用 getline() 读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36254632/