Подтвердить что ты не робот

Как очистить все содержимое файла в C?

У меня есть файл с некоторыми данными user1. Я хочу использовать тот же файл для user2, очистив содержимое файла.

Моя идея заключается в том, что когда приходит новый пользователь, данные предыдущего пользователя должны быть четкими, и тот же файл должен быть готов для нового пользователя.

4b9b3361

Ответ 1

Как сказал @stefan, использование fopen() с режимом "w" сделает эту работу за вас. Когда вы открываете файл с флагом "w" , он создает пустой файл для записи. Если файл с тем же именем уже существует, его содержимое удаляется, и файл рассматривается как пустой новый файл.

Если файл уже открыт, вы можете использовать функцию freopen() из stdio.h с режимом "w" , так как он сначала закроет файл, а затем снова откроет его для записи, стирая все, что было в файле ранее.

Ответ 2

с fopen(filename, flag) просто откройте его с флагом = "w" или "wb", и он будет очищен

Ответ 3

fclose(fopen("file.txt", "w"));

Почему это работает:

write: Создайте пустой файл для операций вывода. Если файл с тем же именем уже существует, его содержимое отбрасывается, и файл рассматривается как новый пустой файл.

(цитата из http://www.cplusplus.com/reference/cstdio/fopen/)

Ответ 4

Существует два способа:

1. fd=open(filename,O_RDONLY | O_WRONLY | O_TRUNC);


2. [cat /dev/null > filename] for BASH. It can be directly used in c program using [system()] system call. 

   system("cat /dev/null > filename");   

Ответ 5

Я использую:

fp=freopen(NULL,"w",fp);