我正在尝试帮助一位朋友完成大学作业,但我忘记了很多 C 和 Lex。

问题是,我们正在尝试解析 HTML 和相应的 CSS 文件并将其样式添加到标签中。

例如:

超文本标记语言

<body>
</body>

CSS

body{color:black;}

修改后的 HTML

<body style="color:black;">
</body>

所有正则表达式和宏都已完成。

问题: 输入的 HTML 和修改后的 HTML 必须是同一个文件。我们尝试重定向两者 音音yyout 到同一个文件...然后使用 fputs(text, yyout);其中 text 是带有所有样式信息(和 style="")的 char * 。这不起作用。

所以...你们能帮助他吗?

重要的是不要丢失文件中位置的概念(因此 style="" 会转到正确的标签)。

谢谢

有帮助吗?

解决方案

将 yyin 和 yyout 重定向到同一文件将不起作用。( 就像你已经知道的那样 ) 。我的方法是:

  1. 创建临时文件
  2. yyout 写入临时文件
  3. 解析完成后,备份输入文件以确保安全
  4. 用临时文件替换输入文件

没有其他方法,如果 yyout 与 yyin 相同,您的(原始输入)文本将重叠。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top