26

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

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

4

5 回答 5

50

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

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

于 2011-01-27T11:25:11.447 回答
17

只需fopen(filename, flag)用 flag="w"或打开它"wb",它就会被清除

于 2011-01-27T10:38:16.637 回答
14
fclose(fopen("file.txt", "w"));

为什么这样有效:

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

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

于 2014-10-13T14:57:26.577 回答
5

有两种方法:

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");   
于 2013-06-24T10:11:34.853 回答
2

我在用:

fp=freopen(NULL,"w",fp);
于 2019-09-28T17:31:15.783 回答