如何在C中清除文件的全部内容?

时间:2011-01-27 10:36:45

标签: c file file-io file-handling

我有一个包含user1数据的文件。我想通过清除文件内容为user2使用相同的文件。

我的想法是,当新用户到来时,前一个用户的数据应该清晰,并且应该为新用户准备相同的文件。

5 个答案:

答案 0 :(得分:36)

正如@stefan所说,使用fopen()和“w”模式将为你完成这项工作。当您使用“w”标志打开文件时,它会创建一个用于写入的空文件。如果已存在具有相同名称的文件,则其内容将被删除,并且该文件将被视为空的新文件。

如果文件已经打开,你可以使用stdio.h中的freopen()函数和“w”模式,因为它将首先关闭文件,然后重新打开它以写入擦除之前文件中的任何内容。

答案 1 :(得分:14)

fopen(filename, flag)只需使用flag = "w""wb"将其打开即可清除

答案 2 :(得分:10)

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

为什么会这样:

  

写:为输出操作创建一个空文件。 如果已存在同名文件,则会丢弃其内容,并将该文件视为新的空文件

(引自http://www.cplusplus.com/reference/cstdio/fopen/

答案 3 :(得分:3)

有两种方法:

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");   

答案 4 :(得分:0)

我正在使用:

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