我有一个文件(作为文本),我应该从中提取所有包含的文件名。实现应该在C++
我想做的是逐行读取文件行(getline
)检查行是否从开始#include
- 我该怎么做?(可能有前导空格)然后提取文件名 - 字符串在“”之间 - 我该怎么做?谢谢
问问题
65 次
1 回答
0
首先,一个包含可以放置在两者之间<>
或之间,""
因此您必须检查两者。
下一个 - 做你尝试的最好方法是使用正则表达式。如果您正在使用c++11
它们,它们将成为标准的一部分,您应该很高兴。如果不是这种情况,例如可以尝试boost::regex。
如果使用正则表达式不是一个选项,您将不得不实现自己的解析,但这很容易出错,并且很可能您会错过一些奇怪的边缘情况。如果必须的话,我会通过逐行遍历文件来实现这样的解析。比我检查该行是否包含#include
子字符串并验证它之前是否只有空格。如果该行确实具有提到的子字符串,我将遍历该行的其余部分以解析<>
or之间的部分""
。
于 2013-01-23T09:49:54.503 回答