c++ - 如何使用 C++ 或 C 在大文件中查找特殊值

标签 c++ c algorithm file

我想使用 C++ 或 C 在大型(> 500 MB)文本文件中找到一些值。我知道可能的匹配值只能存在于每行的开头,并且其长度恰好为 10人物。好的,我可以逐行读取整个文件,使用 substr() 搜索值或使用正则表达式,但这有点难看而且非常慢。我考虑使用嵌入式数据库(例如 Berkeley DB),但我要搜索的文件非常动态,我发现每次将其导入数据库时​​都会遇到问题。由于内存的限制,不可能一次将整个文件加载到内存中。非常感谢。

最佳答案

这似乎不太适合 C/C++。由于问题定义为需要解析整行文本,并对前 10 个字符执行模式匹配,因此解释的东西,例如 python 或 perl 似乎更简单。

怎么样:

import os
pattern ='0123456789'   # <-- replace with pattern

with open('myfile.txt') as f:
    for line in f:
        if line.startswith(pattern):
            print "Eureka!'

关于c++ - 如何使用 C++ 或 C 在大文件中查找特殊值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10034409/

相关文章:

arrays - 为具有已知行/列总和和最大单元格值的矩阵找到可能的解决方案

python - 如何在 Python3 上安装 Bob?

c++ - (C++) 当函数完成时分配在堆栈上的数组发生了什么?

c++ - 什么时候必须/应该使用 dynamic_cast 而不是 static_cast?

c++ - CRTP相对于抽象类的好处?

algorithm - 高效排序算法的实际重要性

c - 使用此规范声明函数

c - 为什么编译器不将理论上可能的 int[][] 转换为 int** ?

无法检查C中函数的返回值

java - 文件夹: fold method