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

k97glaaz  于 2023-01-25  发布在  其他
关注(0)|答案(6)|浏览(790)

我有一个包含user1的一些数据的文件。我想通过清除文件的内容来为user2使用相同的文件。
我的想法是,当一个新用户到来时,前一个用户的数据应该是清晰的,同样的文件应该为新用户准备好。

wmtdaxz3

wmtdaxz31#

正如@stefan所说,使用fopen()的“w”模式会为你完成这项工作。当你打开一个带有“w”标志的文件时,它会创建一个空文件进行写入。如果一个同名的文件已经存在,它的内容会被擦除,该文件会被视为一个空的新文件。
如果文件已经打开,您可以使用stdio. h中的freopen()函数,并使用“w”模式,因为它将首先关闭文件,然后重新打开文件进行写入,并擦除文件中先前存在的内容。

bxjv4tth

bxjv4tth2#

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

为什么这样做:
write:为输出操作创建一个空文件。如果已经存在同名文件,则会丢弃其内容,并将该文件视为新的空文件
(引自http://www.cplusplus.com/reference/cstdio/fopen/

kq4fsx7k

kq4fsx7k3#

使用fopen(filename, flag),只需使用标志= "w""wb"打开它,它将被清除

z4iuyo4d

z4iuyo4d4#

有两种方法:

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

eivnm1vs5#

我正在使用:

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

3lxsmp7m6#

我更喜欢用途:-

system("echo "" > filename_with_complet_path");

相关问题