假设我有一个大小为 9 GB 的 .txt 文件。我只想读第 n 个 MB。 (我知道什么是 n)。但是我的电脑只有 4GB 内存,所以我无法一次加载所有文件。我需要多次访问不同的 n。执行此操作的最佳方法是什么(我不知道标准 ifstream 是否能够执行此操作)。
最佳答案
您想在文件中“寻找”到指定位置。在使用 ifstream
的 C++ 中,您使用 seekg()
:http://www.cplusplus.com/reference/istream/istream/seekg/
例如:
char data[1024*1024];
ifstream in("myfile.txt");
in.seekg(450 * 1024 * 1024, ios_base::beg); // skip 450 MB
if (in.read(data, sizeof(data)) {
// use data
}
关于c++ - C++读取大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40701713/