Как перезаписать файл на C?

Я пытаюсь перезаписать содержимое ФАЙЛА на C. В настоящее время у меня есть:

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, ...

Любая помощь будет принята с благодарностью.

Спасибо.

РЕДАКТИРОВАТЬ:

Я изменил код на:

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

Проблема все еще сохраняется.

7
задан czchlong 6 February 2012 в 18:48
поделиться