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

发布于 2024-10-14 12:51:02 字数 111 浏览 6 评论 0原文

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

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

I have a file with some of user1's data. I want to use the same file for user2 by clearing the content of the file.

My idea is that when a new user comes, data of the previous user should be clear and the same file should be ready for the new user.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

蓝咒 2024-10-21 12:51:02

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

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

As @stefan said using fopen() with "w" mode will do the job for you. When you open a file with "w" flag it creates an empty file for writing. If a file with the same name already exists its contents are erased and the file is treated as an empty new file.

If the file is already open you can use freopen() function from stdio.h with "w" mode as it will first close the file and then reopen it for writing erasing whatever was in the file previously.

柠北森屋 2024-10-21 12:51:02

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

with fopen(filename, flag) just open it with flag= "w" or "wb" and it will be cleared

无人问我粥可暖 2024-10-21 12:51:02
fclose(fopen("file.txt", "w"));

为什么这有效:

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

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

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

Why this works:

write: Create an empty file for output operations. If a file with the same name already exists, its contents are discarded and the file is treated as a new empty file.

(quote from http://www.cplusplus.com/reference/cstdio/fopen/)

甜柠檬 2024-10-21 12:51:02

有两种方法:

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

There are two ways:

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");   
£噩梦荏苒 2024-10-21 12:51:02

我正在使用:

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

I am using:

fp=freopen(NULL,"w",fp);
凉宸 2024-10-21 12:51:02

我更喜欢使用:-

system("echo "" > filename_with_complet_path");

I prefer to use:-

system("echo "" > filename_with_complet_path");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文