Lexの入力ファイルにテキストを挿入(Cを使用)
-
22-07-2019 - |
質問
大学の課題で友人を助けようとしていますが、CとLexをたくさん忘れました。
問題は、HTMLと対応するCSSファイルを解析し、スタイルにタグを追加しようとしていることです。
例:
HTML
<body>
</body>
CSS
body{color:black;}
変更されたHTML
<body style="color:black;">
</body>
すべての正規表現とマクロも完了しました。
問題:入力HTMLと変更されたHTMLは同じファイルでなければなりません。 yyin と yyout の両方を同じファイルにリダイレクトしようとしました...そして、fputs(text、yyout)を使用しました。ここで、テキストはすべてのスタイル情報を含むchar *です(およびstyle =&quot;&quot;)。動作しません。
だから...君たちは彼を助けることができる?
ファイル内の場所の概念を失わないことが重要です(したがって、style =&quot;&quot;は正しいタグに移動します)。
ありがとう
解決
yyinとyyoutを同じファイルにリダイレクトすることはできません(既にご存知のように)。私のアプローチは次のとおりです。
- 一時ファイルを作成
- yyoutは一時ファイルに書き込みます
- 解析が終了したら、安全のために入力ファイルをバックアップします
- 入力ファイルを一時ファイルに置き換える
他の方法はありません。yyoutがyyinと同じ場合(元の入力)テキストは重複します。
所属していません StackOverflow