C 语言文件处理全攻略:创建、写入、追加操作解析

C 语言中的文件处理

在 C 语言中,您可以通过声明类型为 FILE 的指针,并使用 fopen() 函数来创建、打开、读取和写入文件:

c 复制代码
FILE *fptr;
fptr = fopen(filename, mode);

FILE 基本上是一个数据类型,我们需要创建一个指针变量来使用它 (fptr)。现在,这行代码并不重要。它只是在处理文件时需要的东西。

要实际打开文件,请使用 fopen() 函数,它接受两个参数:

参数 描述
filename 要打开的实际文件的名称,例如 filename.txt
mode 一个表示您想对文件做什么(读取、写入或追加)的单个字符:
w 写入文件
a 将新数据追加到文件
r 从文件中读取

创建文件

要创建文件,可以在 fopen() 函数中使用 w 模式。

w 模式用于写入文件。但是,如果文件不存在,它将为您创建一个文件:

c 复制代码
FILE *fptr;

// 创建一个文件
fptr = fopen("filename.txt", "w");

// 关闭文件
fclose(fptr);

注意:如果未指定其他信息,文件将与您的其他 C 文件位于同一目录中。

在我们的电脑上,它看起来像这样:

运行示例 >>

提示:如果您想在特定文件夹中创建文件,只需提供绝对路径:

c 复制代码
fptr = fopen("C:\directoryname\filename.txt", "w");

关闭文件

您是否在上面的示例中注意到了 fclose() 函数

当我们完成后,它将关闭文件

它被认为是良好的实践,因为它可以确保:

  • 更改已正确保存
  • 其他程序可以使用该文件(如果您愿意)
  • 清理不必要的内存空间

C 语言中的文件写入

w 模式表示文件已打开用于写入。要将内容插入其中,可以使用 fprintf() 函数,并添加指针变量 (我们示例中的 fptr) 和一些文本:

c 复制代码
FILE *fptr;

// 以写入模式打开文件
fptr = fopen("filename.txt", "w");

// 将一些文本写入文件
fprintf(fptr, "Some text");

// 关闭文件
fclose(fptr);

注意:如果您写入一个已经存在的文件,则旧内容将被删除,并插入新内容。这一点很重要,因为您可能会意外擦除现有内容。

例如:

c 复制代码
fprintf(fptr, "Hello World!");

因此,当我们在计算机上打开文件时,它显示 "Hello World!" 而不是 "Some text"

将内容追加到文件

如果您想在不删除旧内容的情况下将内容添加到文件,可以使用 a 模式。

a 模式将内容追加到文件末尾:

c 复制代码
FILE *fptr;

// 以追加模式打开文件
fptr = fopen("filename.txt", "a");

// 将一些文本追加到文件
fprintf(fptr, "\nHi everybody!");

// 关闭文件
fclose(fptr);

因此,当我们在计算机上打开文件时,它看起来像这样:

arduino 复制代码
Some text
Hi everybody!

注意:当使用 a 模式时,fprintf() 函数不会添加新行。如果您希望在追加的内容之前添加新行,则需要在 fprintf() 函数中手动添加它,如下所示:

c 复制代码
fprintf(fptr, "\n%s", "Hi everybody!");

这将在追加文本之前添加一个新行。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

相关推荐
sg_knight38 分钟前
Spring 框架中的 SseEmitter 使用详解
java·spring boot·后端·spring·spring cloud·sse·sseemitter
暗然而日章3 小时前
C++基础:Stanford CS106L学习笔记 4 容器(关联式容器)
c++·笔记·学习
喵个咪4 小时前
初学者入门:用 go-kratos-admin + protoc-gen-typescript-http 快速搭建企业级 Admin 系统
后端·typescript·go
巨人张4 小时前
C++火柴人跑酷
开发语言·c++
C雨后彩虹5 小时前
机器人活动区域
java·数据结构·算法·华为·面试
用户21411832636025 小时前
手把手教你用Claude制作专属PPT生成器-从模板学习到自动生成全流程实战
后端
Gomiko6 小时前
C/C++基础(四):运算符
c语言·c++
freedom_1024_6 小时前
【c++】使用友元函数重载运算符
开发语言·c++
zmzb01036 小时前
C++课后习题训练记录Day43
开发语言·c++
赖small强7 小时前
【Linux C/C++开发】 GCC -g 调试参数深度解析与最佳实践
linux·c语言·c++·gdb·-g