【C语言学习——————文件处理操作的简单介绍与讲解】

news2024/11/26 8:53:18
 

欢迎阅读新一期的c语言学习模块————文件处理操作

✒️个人主页:-_Joker_-

🏷️专栏:C语言

📜代码仓库:c_code

🌹🌹欢迎大佬们的阅读和三连关注,顺着评论回访🌹🌹


文章目录

  • 一、什么是文件
  • 1.文件分类
  • 二、文件的使用
  • 1.如何使用文件指针
  • 三、文件的打开和关闭
  • 四、文件操作函数以及使用方式
  •  1.文件的使用方式
  • 2.文件的顺序读写函数


一、什么是文件

 与普通文件载体不同,文件是以硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等等。文件通常具有点+三个字母的文件扩展名,用于指示文件类型(例如,图片文件常常以KPEG格式保存并且文件扩展名为.jpg)。

        将数据放入文件中,相比代码程序中堆栈上的数据,其优点在于可以随时做到需要时添加、舍弃时删除,数据可以持久化。

1.文件分类:

文件一般讲两种:程序文件和数据文件;

  程序文件:
        包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。

  数据文件:
        包括程序运行时所读写的数据。本篇所涉及的就是数据文件。


二、文件的使用

文件的操作一般分三步:1.打开文件;2.读/写;3.关闭文件;

若想要对文件进行操作,则需要用到文件指针

想要对文件进行操作,“文件指针”就是一个关键桥梁                

        原理:每个被使用的文件,都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如:文件名、文件状态、文件位置等),这些信息被保存到一个结构体中,系统为其声明为FILE,每当打开一个文件的时候,系统就会根据情况自动创建一个FILE结构的变量,并且通过FILE*的指针来维护这个结构。

1.如何使用文件指针

文件指针可以用如下方式使用:

 FILE* pf;

这个语句的意思是定义一个文件指针变量pf,它可以指向某个文件的文件信息区,通过其即可访问到该文件。


三、文件的打开和关闭

一般在C语言中,我们用以下的几个函数对文件进行打开/关闭操作

1.

        fopen —— 打开文件

FILE * fopen ( const char * filename, const char * mode );

2.

        fclose—— 关闭文件

int fclose ( FILE * stream );

四、文件操作函数以及使用方式

1.文件的使用方式

如下图:

2.文件的顺序读写函数


下面通过几个案例来讲解一些文件的读写函数

1.打开文件
FILE *fopen( const char *filename, const char *mode );

filename:文件的路径
mode:打开模式

例:


int main()
{
    FILE* f;
    f = fopen("test.txt", "w");
    if (f != NULL)
    {
        fputs("fopen example", f);
        fclose(f);
        f=NULL;
    }
    return 0;
}

注意:

1.文件是否打开成功

2.关闭文件

3.文件指针置空


2.关闭文件
函数原型:int fclose( FILE *stream );


if(fclose(f)!=0) 
{
	printf("File cannot be closed/n"); 
	exit(1); 
} 
else
{
    printf("File is now closed/n"); 
}

3.读取字符
int fgetc ( FILE * stream )
;


#include <stdio.h>
int main ()
{
  FILE * pFile;
  int c;
  int n = 0;
  pFile = fopen ("D:\\test.txt", "r");
  if (pFile == NULL) perror ("Error opening file"); // 打开失败
  else
  {
    while (c != EOF)
    {
      c = fgetc (pFile); // 获取一个字符
      if (c == '*') n++; // 统计符号 '*' 在文件中出现的次数
    }
    fclose (pFile); // 一定记得要关闭文件
    printf ("The file contains %d sign characters (*).\n",n);
  }
  return 0;
}

4.写入字符
int fputc( int c, FILE *stream );

c:要写入的字符


    char ch;
    FILE* pf = fopen("test.txt", "w");
    if (pf == NULL)
    {
        perror("error opening file");
        exit(0);
    }
    ch = getchar();
    while (ch != '*')
    {
        fputc(ch, pf);
        ch = getchar();
    }
    fclose(pf);

5.删除文件
int remove ( const char * filename )


本次仅先介绍以上几个函数,如果有需要了解其他函数,请参考文件操作函数汇总

以了解更多文件操作函数


以上是对文件操作的讲解与介绍,感谢各位的阅读和支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/859070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【工作记录】mysql中实现分组统计的三种方式

前言 实际工作中对范围分组统计的需求还是相对普遍的&#xff0c;本文记录下在mysql中通过函数和sql完成分组统计的实现过程。 数据及期望 比如我们获取到了豆瓣电影top250&#xff0c;现在想知道各个分数段的电影总数. 表数据如下: 期望结果: 实现方案 主要思路是根据s…

国产芯力特Mini LIN SBC SIT1028Q应用方案,可替代TJA1028

SIT1028Q是一款内部集成高压LDO稳压源的本地互联网络&#xff08;LIN&#xff09;物理层收发器&#xff0c;可为外部ECU&#xff08;Electronic Control Unit&#xff09;微控制器或相关外设提供稳定的5V/3.3V电源&#xff0c;该LIN收发器符合LIN2.0、LIN2.1、LIN2.2、LIN2.2A、…

学习嵌入式系统的推荐步骤:

C语言&#xff1a;作为基础中的基础&#xff0c;选择一本常用的C语言教材&#xff0c;并注意通过实践编写习题、编译运行代码来加深理解。动手实践是非常重要的。 微机原理与接口技术&#xff1a;这本教材将帮助你了解CPU的基本结构、工作原理以及与外设的交互。虽然开始可能有…

手把手教你如何从零开始搭建自己的鞋店商城

对于不懂技术的新手来说&#xff0c;建立一个鞋店商城可能会显得有些困难。然而&#xff0c;现在有一些方便易用的网站建设平台可以帮助您快速搭建一个鞋店商城。本文将介绍乔拓云网的建站教程&#xff0c;让您轻松完成建站。 步骤1&#xff1a;注册乔拓云网账号并登录 首先&a…

苹果Mac像Windows一样使用

一、将磁盘访问设置的像Windows一样&#xff1a; 1.1、点击任务栏第一个按钮打开“访达”&#xff0c;点击菜单栏上的访达-偏好设置&#xff1a; 1.2、勾选“硬盘”&#xff0c;这样macOS的桌面上就会显示一个本地磁盘&#xff0c;之后重命名为磁盘根&#xff0c;相当于window…

Token 失效退出至登录页面

1. 在登录页面&#xff0c;调用登录的接口后&#xff0c;直接写上当前时间&#xff0c;保存在本地 代码&#xff1a; // 点击登录login(form) {this.$refs[form].validate((valid) > {if (valid) {this.$API.Login(this.form).then((res) > {// console.log(res, "1…

专注于创意设计,为您的小程序和网站建设带来更多的可能性

随着移动互联网的快速发展&#xff0c;越来越多的企业开始关注小程序和网站建设&#xff0c;以此来拓展业务和提升品牌形象。 在这个领域中&#xff0c;创意设计扮演着关键的角色。它不仅可以帮助企业打造独特的形象和品牌&#xff0c;还能够提高用户体验和购买决策的效率。 因…

C语言每日一题:15:寻找峰值。

题目链接 思路一&#xff1a; 思路二&#xff1a; int findPeakElement(int* nums, int numsLen ) {// write code hereint left0;int rightnumsLen-1;int* curnums;int mid0;//特殊情况判断两个值&#xff0c;单增和单减if(cur[0]>cur[1]){return 0;}if(cur[numsLen-1]>…

PROFINET转DeviceNet网关普通网线能代替profinet吗

捷米JM-DNT-PN这款神器&#xff0c;连接PROFINET和DeviceNet网络&#xff0c;让两边数据轻松传输。 这个网关不仅从ETHERNET/IP和DEVICENET一侧读写数据&#xff0c;还可以将缓冲区数据交换&#xff0c;这样就可以在两个网络之间愉快地传递数据了&#xff01;而且&#xff0c;…

找不到msvcr120.dll,无法继续执行代码,怎么修复?

当msvcp120.dll文件丢失或找不到时&#xff0c;会导致无法运行使用C编写的程序。这可能是由于以下原因导致的&#xff1a; 1.删除或移动文件&#xff1a;如果你不小心删除了或移动了msvcp120.dll文件&#xff0c;你将无法找到它并加载它&#xff0c;从而导致程序无法正常运行。…

护肤品种草软文怎么写?教你几招写作技巧

护肤品种草软文以独特的方式将产品的优势和特点传递给消费者&#xff0c;从而引导消费者购买。然而&#xff0c;随着护肤品市场的竞争日益激烈&#xff0c;如何写出一篇高质量的护肤品种草软文已经成为了很多品牌方和企业方的难题。本文伯乐网络传媒将从多个角度教你如何写出一…

学习C语言的好处:

基础编程语言&#xff1a;C语言是其他编程语言的基础&#xff0c;学习C语言可为后续学习打下坚实基础&#xff0c;广泛应用于嵌入式系统、操作系统、网络协议等。 简单易学&#xff1a;C语言语法简单易懂&#xff0c;适合初学者。只需文本编辑器和编译器&#xff0c;即可开始编…

μCOS-Ⅲ+GD32_SysTick与PendSV中断管理配置浅解

μCOS-ⅢGD32_SysTick与PendSV中断管理配置浅解 GD32移植μCOS-Ⅲ时&#xff0c;需要特别关注的两个与系统相关的且非常重要的中断&#xff0c;一个是提供OS系统时基的滴答定时器(SysTick_Handler中断)&#xff0c;另一个是跟任务调度有关的(PendSV_Handler中断)&#xff0c;成…

常见的数据结构:树Tree

目录 1.概念 1.1 满二叉树 1.2 完全二叉树 1.3 平衡二叉树 2.遍历方式 2.1 先序遍历 2.2 中序遍历 2.3 后序遍历 2.4 层序遍历 1.概念 原理&#xff1a;一种特殊的数据结构&#xff0c;每个节点有零个或多个子节点&#xff1b;没有父节点的节点称为根节点&#xff1b;每…

【Flutter】【基础】CustomPaint 绘画功能,绘制各种图形(二)

CustomPaint 使用实例和代码&#xff1a; 1.canvas.drawColor 绘制背景颜色 class MyPainter1 extends CustomPainter {overridevoid paint(Canvas canvas, Size size) {//绘制背景颜色&#xff0c;整个UI 现在就是红色的canvas.drawColor(Colors.red, BlendMode.srcATop);}…

STM32--EXTI外部中断

前文回顾---STM32--GPIO 相关回顾--有关中断系统简介 目录 STM32中断 NVIC EXTI外部中断 AFIO EXTI框图 旋转编码器简介 对射式红外传感器工程 代码&#xff1a; 旋转编码器工程 代码&#xff1a; STM32中断 先说一下基本原理&#xff1a; 1.中断请求发生&#xff1a…

创建型设计模式:4、建造者模式(Builder Pattern)

目录 1、建造者模式含义 2、建造者模式的讲解 3、使用C实现建造者模式的实例 4、建造者模式的优缺点 5、建造者模式VS工厂模式 1、建造者模式含义 The intent of the Builder design pattern is to separate the construction of a complex object from its representatio…

Java utgard连接OPC问题记录

1- 0x00000005 user access deny,用户校验不通过: 这个问题检查了一天,首先确认用户名密码没错,检查了一遍DCOM配置,也没有问题, 接下来陷入了困境, 后来查了些资料,顺着用户校验不通过这条线索, 查看Windows系统日志,如下: 安全日志中记录用户登录行为, OPC通信需要使用Windo…

这种鼠标悬浮,图片放大,鼠标移出,图片变回原来的大小,是如何实现的?

在Vue中实现鼠标悬浮时图片放大效果&#xff0c;以及鼠标移出时图片恢复原来大小&#xff0c;可以使用Vue的事件绑定和样式绑定功能来完成。以下是一个基本的示例&#xff1a; 首先&#xff0c;在Vue组件中&#xff0c;定义一个数据属性来控制图片的放大和恢复&#xff1a; &…

交叉导轨在OA机械中起什么作用?

OA机是将计算机、通信等现代化技术运用到传统办公方式&#xff0c;进而形成的一种新型办公方式。OA机利用现代化设备和信息化技术&#xff0c;代替办公人员传统的部分手动或重复性业务活动&#xff0c;优质而高效地处理办公事务和业务信息&#xff0c;实现对信息资源的高效利用…