テキストファイルの特定の行を上書きしますか?
-
11-09-2019 - |
質問
C でテキスト ファイルの特定の行を上書きするにはどうすればよいですか?ファイルに書き込む必要がある値が複数の変数にあります。
解決
これは、新しい行が古い行と同じサイズの場合にのみ機能します。
- モードでファイルを開きます
a+
fseek()
ファイルの先頭まで- 次の行を読む前に、次を使用します
ftell()
行の始まりに注目する - 行を読んでください
- ご希望のラインであれば、
fseek()
再び結果からftell()
そして使用しますfwrite()
上書きします。
行の長さが変更された場合は、ファイルをコピーする必要があります。
他のヒント
(Cの標準ライブラリの観点から)ファイルは行指向ではなく、単なる文字(またはバイナリモードでのバイト)の配列なので、あなたはラインレベルでそれらを編集することを期待することはできません簡単ます。
アロンはあなたの交換がまったく同じ文字カウントであれば、あなたはもちろんの行を構成する文字を置き換えることができます説明したようにます。
また、(おそらく)(行終端の前に)最後に空白でパディングすることにより、短い交換を挿入することができます。それはもちろんビットの粗だ。
所属していません StackOverflow