c - 读取文本文件,忽略注释

标签 c

要求

我有一个如下所示的 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:

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

请提出您的意见。

提前致谢。

最佳答案

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

或者使用正则表达式。可能有 C 库可以实现这一点,尽管 sed 可能会花费最少的努力来完成它。

关于c - 读取文本文件,忽略注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19494517/

相关文章:

c - 什么时候可以通过 char * 相等来比较 C 字符串?

c - 整数不写入 C 中的文件

arrays - C: 'the incompatible pointer types passing' 警告很重要?/将多维数组传递给函数

C项目: compiling multiple applications with shared sources

c - Numpy Like Arrays for C

c - 手动设置gcc函数地址

c - Malloc 字符串并编辑它

c - C中的整数指针数组排序

c - 多维嵌套 OpenMP 循环

c - 是否可以取消引用指向结构的指针?