阅读忽略评论的文本文件

时间:2013-10-21 12:27:54

标签: c

需要量

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

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

当我运行我的程序时,它应该包含include文件的内容并转储到文件中。倾销后,它看起来像这样。

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:

有没有简单的方法可以忽略这些评论。我只需要支持多行注释(/ ** /)?

请提供您的意见。

提前致谢。

3 个答案:

答案 0 :(得分:1)

逐个字符地读取文件,并跟踪当前字符和前一个字符。字符。当前一个字符为/且当前字符为*时,请停止将前一个字符复制到输出,并且在字符为*/之前不要启动。< / p>

或者使用正则表达式。可能有C库,尽管sed可能会花费最少的努力。

答案 1 :(得分:0)

你必须使用字符串操作,在找到“/ ”时设置一个标志,如果在注释的情况下设置了标志,并在找到“ /”重置标志,设置标志应该在字符串操作之前,应该是这样的 1标志设置或重置 2如果标志集以评论的方式处理它 3其他你想要的方式......

答案 2 :(得分:0)

使用gcc和--save-temps选项,你会发现没有评论的.i文件......可能会为你找到一个解决方案。 谢谢,耆那教