9

我正在使用必须在大文件(~1TB)中寻找的 ifstream 在 C++ 中实现一个程序。然而,这在读取 2GB 后失败。有没有办法获取文件位置,即使是大文件?我为 32 位 windows 机器编译。

std::ifstream f;
f.open( filename.c_str(), std::ifstream::in | std::ifstream::binary );
while(true) {
    std::cout << (uint64_t)(f.tellg()) << std::endl;
    //read data
}
4

1 回答 1

2

由于您在 32 位平台上进行编译,因此如果使用fstream,您将获得 32 位访问权限。要访问大文件,您需要使用平台相关的解决方案:

于 2012-07-12T09:51:21.100 回答