3

cでテキストファイルの特定の行を上書きするにはどうすればよいですか?. ファイルに書き込む必要がある複数の変数に値があります。

4

2 に答える 2

7

これは、新しい行が古い行と同じサイズの場合にのみ機能します。

  • モードでファイルを開くa+
  • fseek()ファイルの先頭まで
  • 次の行を読む前に、 を使用ftell()して行頭に注意してください
  • 行を読む
  • それが必要な行である場合はfseek()、結果ftell()を使用fwrite()して上書きします。

行の長さが変わる場合は、ファイルをコピーする必要があります。

于 2009-12-02T13:03:24.550 に答える
0

(Cの標準ライブラリの観点から)ファイルは行指向ではなく、単なる文字のシーケンス(またはバイナリモードではバイト)であるため、行レベルでファイルを簡単に編集することは期待できません。

アーロンが説明したように、置換がまったく同じ文字数である場合は、もちろん、行を構成する文字を置換することができます。

また、(おそらく)最後(行末記号の前)に空白を埋めることで、より短い置換を挿入することもできます。もちろん、それは少し粗雑です。

于 2009-12-02T13:23:47.993 に答える