首页 > 其他分享 >C 语言文件处理全攻略:创建、写入、追加操作解析

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

时间:2024-01-08 23:03:52浏览次数:27  
标签:fptr 文件 fopen 写入 filename 全攻略 fprintf 解析

C 语言中的文件处理

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

FILE *fptr;
fptr = fopen(filename, mode);

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

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

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

创建文件

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

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

FILE *fptr;

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

// 关闭文件
fclose(fptr);

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

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

运行示例 »

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

fptr = fopen("C:\directoryname\filename.txt", "w");

关闭文件

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

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

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

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

C 语言中的文件写入

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

FILE *fptr;

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

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

// 关闭文件
fclose(fptr);

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

例如:

fprintf(fptr, "Hello World!");

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

将内容追加到文件

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

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

FILE *fptr;

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

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

// 关闭文件
fclose(fptr);

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

Some text
Hi everybody!

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

fprintf(fptr, "\n%s", "Hi everybody!");

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

最后

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

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

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

标签:fptr,文件,fopen,写入,filename,全攻略,fprintf,解析
From: https://blog.51cto.com/xiaowange/9151483

相关文章

  • C 语言文件处理全攻略:创建、写入、追加操作解析
    C语言中的文件处理在C语言中,您可以通过声明类型为FILE的指针,并使用fopen()函数来创建、打开、读取和写入文件:FILE*fptr;fptr=fopen(filename,mode);FILE基本上是一个数据类型,我们需要创建一个指针变量来使用它(fptr)。现在,这行代码并不重要。它只是在处理文件时......
  • 二维卷积计算:解析其原理和应用领域
    卷积计算是深度学习中常见的一种操作,它广泛应用于图像处理、语音识别、自然语言处理等领域。其中,二维卷积计算是卷积计算的一种形式,专门针对二维数据,如图像、矩阵等。一、二维卷积计算基本原理二维卷积计算是指对两个二维矩阵进行运算,得到一个新的矩阵。具体来说,给定两个矩阵A和B,其......
  • java: 写入数据到HBase
    一、添加依赖<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.6.0</version></dependency><dependency>......
  • java面向对象 + 内存解析
    这篇博客主要是重点讲解一些内存和一些规定的解释,对于定义我不会过多赘述,没有Java基础的话可以去翻看我之前的博客,学习完成之后再进行阅读。面向对象可以说是Java中最重要的一部分了,这次复习我发现有几个点比较重要,这里分享给大家引入:小明今天想要一辆玩具车,他获取这辆玩具车有两......
  • 批量爬取百度图片(异步+网络请求解析)
     4、分析百度图片搜索返回结果的HTML代码,或找一图片网站,编写爬虫抓取图片并下载形成专题图片。#########分析#########  #使用网络工具查看百度图片的组成,我们可以发现他的分类中的模块是  #通过一个a标签包揽的,这就表明,我们可以设置两层循环(由于此时下载的东西会......
  • 数据版本控制的基本原理解析
    1.背景介绍数据版本控制(DataVersionControl,DVC)是一种用于管理机器学习(ML)和深度学习(DL)项目的版本控制系统。它允许数据科学家和机器学习工程师在训练模型时轻松跟踪、回滚和共享数据和模型。DVC的核心思想是将数据、模型和训练脚本作为版本控制的一部分,以确保模型的可重复性和......
  • 增量学习的基本原理解析
    1.背景介绍增量学习,也被称为在线学习,是一种机器学习方法,其主要特点是在训练过程中,随着新的数据的到来,模型不断更新,而不是一次性地使用所有数据来训练模型。这种方法在实际应用中具有很大的优势,因为它可以在数据流入的过程中立即得到模型的更新,从而实现快速的学习和适应。增量学习的......
  • Kubernetes容器实践深度解析
    Kubernetes容器实践深度解析引言在当今云原生时代,容器技术已经成为构建、部署和管理应用程序的关键工具之一。而在众多的容器编排系统中,Kubernetes(简称K8s)因其强大的自动化、弹性和可扩展性而备受欢迎。本文将深入探讨Kubernetes容器实践,从基础概念到高级应用,为读者提供全面的指南......
  • Node 和浏览器里实现 Excel 的解析和生成
    Excel是常用的办公软件,我们会用它来做数据的整理。后台管理系统一般都会支持从Excel导入数据,或者导出数据到Excel文件:那这种功能是如何实现的呢?在Node和浏览器里,如何解析、生成Excel文件呢?一般我们会用exceljs这个包来做。在npm官网可以看到,这个包每周有30w+的下载......
  • Java之序列化的详细解析
     3.序列化3.1概述Java提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反......