快速访问 ifs() C++中的文件位置
Fast accessing file position in ifs() C++
信息:在 txt 文件中存储位置、关闭文件,然后使用 c++ 在同一位置打开它的最佳方法是什么?
我有一个大文本文件,我需要分块解析并输入到某个系统中。截至目前,我将文件加载到 ifstream 中,然后获取行,直到找到我需要的数据(假设数据位于位置 {x}(。在此之后,我关闭文件,处理数据,现在我需要继续从大文件中馈送数据。所以我再次打开文件,并获取行,直到这次我到达位置 {x+d}(d 是我读取的数据的偏移量(......
而不是遍历文件一次,很容易看出,我去(1d + 2d + ... + (N-1(d + Nd( ~ d*N^2次文件。现在我想在d之后保存文件中的位置,关闭文件,然后立即打开相同位置的文件。什么可以用来做这个?
您无法在启用换行转换(标准称为"文本模式"(的情况下执行此操作,因为寻找回位置需要标准库扫描文件的整个前端以查找 N 个字符不重复计算换行符。 可变长度编码的转换(例如 UTF-8 和 UCS 之间的转换(会导致类似的问题。
解决方案是关闭换行转换(标准称为"二进制模式"(和任何其他涉及可变长度编码的转换,并自行处理这些转换。 关闭所有转换后,"文件位置"是操作系统直接用于执行文件 I/O 的数字,因此有可能非常高效(是否真正高效取决于标准库实现细节(。
相关文章:
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 如何选择在 csv 文件中输出的位置
- 无法打开 fstream C++文件,即使它与 .cpp 位于同一位置
- 如何在特定位置追加 json 文件
- 将文件复制到自定义位置,存在字符串转换问题
- 奇怪的Arduino C++编译错误取决于文件位置
- 在 elf 文件中查找全局变量的位置
- 可以将Boost消息队列文件重定向到用户指定的位置
- 您如何确定 MySQLCPPConn 库文件的位置?
- 是否可以将要"ShellExecute"的文件包含在 dll 中?如果是这样,"ShellExecute"中的文件位置应该是什么?
- 快速访问 ifs() C++中的文件位置
- 从C++中父文件夹的父文件夹提供文件位置
- MFC 打开文件位置并选择(突出显示)该文件
- 如何从HTTP在C++中打开一个URL不是文件位置的文件
- 如何处理不同 Linux 发行版上的不同头文件位置
- 配置文件位置和二进制文件,并构建像autoconf这样的系统
- 文件类型以编程关联和文件位置(Windows)
- Visual Studios (2012 pro 主要是) <从父级继承或项目默认值的默认值的文件位置>
- Tesseract -更改语言文件位置
- 更改Xcode c++应用程序外部文件位置