0

要求

我有一个看起来像这样的 txt 文件。

START:
#INCLUDE "INC1.txt" 
#INCLUDE "INC2.txt"
END

当我运行我的程序时,它应该包含包含文件的内容并转储到一个文件中。倾倒后是这个样子。

START:
<Contents of INC1.txt>
<Contents of INC2.txt>
END:

问题

我面临的问题是,如果用户在评论中提供包含(/**/),我不应该转储这些内容。

例如,输入文件将是这样的。

START:
#INCLUDE "INC1.txt"
/******#INCLUDE "INC2.txt"****
This is a test message*******/
END:

转储应该是这样的。

START:
<Contents of INC1.txt>
/******#INCLUDE "INC2.txt"****
This is a test message*******/
END:

有什么简单的方法可以忽略评论。我必须只支持多行注释(/**/)?

请提供您的意见。

提前致谢。

4

3 回答 3

1

逐个字符读取文件,并跟踪当前字符和前一个字符。特点。当前一个字符是/并且当前字符*停止复制前一个字符输出时,直到字符是*and才开始/

或者使用正则表达式。可能有 C 库可以sed做到这一点,尽管可能会以最少的努力做到这一点。

于 2013-10-21T17:35:12.953 回答
0

您必须使用字符串操作,在查找“/ ”时设置一个标志,如果设置了标志,则在注释的情况下按照您的意愿进行操作,并且在查找“ /”重置标志时,设置标志应该在字符串操作之前,它应该是像 1 标志设置或重置 2 如果标志设置以评论 3 的方式处理它,否则你想要的方式....

于 2013-10-21T12:34:49.157 回答
0

将 gcc 与 --save-temps 选项一起使用,您会发现没有注释的 .i 文件...可能会为您提供解决方案。谢谢, 耆那教

于 2013-10-21T12:35:19.403 回答