我正试图帮助一位 friend 完成大学作业,但我有点忘记了很多 C 和 Lex。
问题是,我们正在尝试解析 HTML 和对应的 CSS 文件,并将其样式添加到标签中。
例如:
HTML
<body>
</body>
CSS
body{color:black;}
修改后的 HTML
<body style="color:black;">
</body>
所有正则表达式都已完成,宏也已完成。
问题:输入的 HTML 和修改后的 HTML 必须是同一个文件。我们尝试将 yyin 和 yyout 重定向到同一个文件...然后使用 fputs(text, yyout);其中 text 是一个带有所有样式信息(和 style="")的 char *。它不起作用。
那么...你们能帮帮他吗?
重要的是不要丢失文件中位置的概念(因此 style=""转到正确的标签)。
谢谢
最佳答案
将 yyin 和 yyout 重定向到同一个文件将不起作用..(如您所知)。我的方法是:
- 创建一个临时文件
- yyout 写入临时文件
- 解析完成后,为了安全备份输入文件
- 用临时文件替换输入文件
没有其他办法,如果 yyout 与 yyin 相同,您的(原始输入)文本将被重叠。
关于c - 在 Lex 的输入文件中插入文本(使用 C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1823561/