Как очистить все содержимое файла в C?
У меня есть файл с некоторыми данными user1. Я хочу использовать тот же файл для user2, очистив содержимое файла.
Моя идея заключается в том, что когда приходит новый пользователь, данные предыдущего пользователя должны быть четкими, и тот же файл должен быть готов для нового пользователя.
Ответы
Ответ 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);