【问题标题】:Extract the specific data from the file从文件中提取特定数据
【发布时间】:2013-01-06 17:56:36
【问题描述】:

我有一个文件(作为文本),我应该从中提取所有包含的文件名。 实现应该在C++ 我想做的是逐行读取文件(getline) 检查行是否从 #include 开始 - 我该怎么做?(可能有前导空格) 然后提取文件名 - “”之间的字符串 - 我该怎么做? 谢谢

【问题讨论】:

  • 向我们展示您尝试了什么(代码)以及您在什么时候遇到了问题。
  • 为什么不获取字符串并逐个字符地检查它或使用regex

标签: c++ parsing include getline


【解决方案1】:

首先,包含可以放在<>"" 之间,所以你必须检查两者。

下一步 - 做你尝试的最好方法是使用正则表达式。如果您使用c++11,它们将成为标准的一部分,您应该很高兴。如果不是这种情况,例如可以尝试boost::regex

如果使用正则表达式不是一个选项,您将不得不实现自己的解析,但这很容易出错,并且很可能您会错过一些奇怪的边缘情况。如果必须,我将通过逐行遍历文件来实现这样的解析。比我检查该行是否包含 #include 作为子字符串并验证它之前只有空格。如果行 确实 具有提到的子字符串,我将遍历该行的其余部分以解析 <>"" 之间的部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-02
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多