0

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

4

1 回答 1

0

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

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

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

于 2013-01-23T09:49:54.503 回答