c++ - 在 C++ 中读取文件时跳过文本

标签 c++ file

我正在学习 C++,并且正在使用 cin 处理从外部文本文件加载的数据。

我正在尝试识别需要跳过的大量数据中的某些字符串。

我将如何编写一个函数来跳过文件中/一行中一定数量的字符,或者当我从文件中导入它们时?这样的东西是否已经存在于 iostream 或类似的东西中?

到目前为止,Google 让我很失望。

最佳答案

关于一般跳过:seekg

关于真正的问题:

您似乎希望将模式与大量(半?)文本进行匹配。由于模式足够长,您可以通过跳过输入延伸来获得好处,所以您似乎真的正在尝试全面发明优化的字符串搜索。

已完成:

实现存在于野外(我假设 Boost String Algorithm 应该有它......但也许它太通用了。无论如何我都会看看)

PS.: 振奋精神

此解析器当前正在审查实现 qi::seek[] 指令的增强功能:

这允许在 Spirit 语法中快速跳过。因此,如果您需要一个完整的解析器(甚至可能是扫描器/解析器),那么 Spirit Qi 在性能上确实可以与您匹敌。

一定要:

  • 尽可能避免缓冲输入迭代器适配器(取决于语法)
  • 如果可以的话,使用“C”语言环境
  • 操作输入流缓冲区的迭代器而不是输入流迭代器

关于c++ - 在 C++ 中读取文件时跳过文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7541629/

相关文章:

Java Scanner 无法读取我的 txt 文件

c - 值在输出中显示两次(C 编程)

c++ - 使用 C++ 在 Linux 上锁定/防止编辑源文件

c++ - COM Interop - 找不到成员

C++:递归计算数字 0 - 9 的所有排列

java - 用循环创建多个不同名称的文件?

c++ - 是否有一种直接的方法来反转三角形(上或下)矩阵?

c++ - gcc std::regex 与 -fpack-struct 段错误

c# - C#/.NET 3.5 的文件存储数据库?

android - 声明 URL 的正确方法?