从文件中提取特定数据

Extract the specific data from the file

本文关键字:数据 提取 文件      更新时间:2023-10-16

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

首先,包含可以放置在<>之间或""之间,因此您必须检查两者。

接下来 - 尝试的最佳方法是使用正则表达式。如果您正在使用c++11它们将成为标准的一部分,您应该很高兴。如果不是这种情况,请尝试 boost::regex。

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