1. ホーム
  2. c

[解決済み] C言語でファイルを上書きする方法は?

2022-02-14 11:35:36

質問事項

C言語でFILEの内容を上書きしようとしています。

FILE* file  = fopen("filename.txt",  "r+");
fprintf(file, "%d", 1); // regardless of what's in the file, i want to clear it and put 1 in there
...
// legacy code somewhere else in the code base. can't change.
rewind(file);
fprintf(file, "%d", 2);
fflush(file);

しかし、これでは正常に動作しません。結果はこうなります。

1, 21

それ以降の数字は、それぞれ1の頭に書き込まれます。 例えば、以下のようになります。

1, 21, 31, 41, ...

次のように出力されるように、常にファイルにあるものを上書きする方法があれば知りたいです。

1, 2, 3, 4, ...

何かお手伝いいただけることがあれば、お願いします。

ありがとうございました。

EDIT

というコードに変更しました。

FILE* file  = fopen("filename.txt",  "w+");

まだ問題は続いています。

どうすればいいですか?

で決定します。 fopen . を使うだけです。 "w" または "w+" ではなく "r+" .