超详细讲解C语言文件操作!!

这篇具有很好参考价值的文章主要介绍了超详细讲解C语言文件操作!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是文件

磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。

1、程序文件
包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。
2、数据文件
文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,
或者输出内容的文件。

之前我们处理数据的输入输出大都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上;但实际上,有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使用,这里处理的就是磁盘上文件。

那我们为什么要使用文件呢?举个例子,假入我们实现了一个通讯录的代码,当通讯录运行起来的时候,可以给通讯录中增加、删除数据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了,等下次运行通讯录程序的时候,数据又得重新录入,如果使用这样的通讯录就很难受。

我们在想既然是通讯录就应该把信息记录下来,只有我们自己选择删除数据的时候,数据才不复存在。这就涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。

文件名

一个文件要有一个唯一的文件标识,以便用户识别和引用。文件名包含3部分:文件路径+文件名主干+文件后缀
例如: c:\code\test.txt
为了方便起见,文件标识常被称为文件名

文件的打开和关闭

文件指针

一个指针变量指向一个文件,这个指针称为文件指针。通过文件指针就可对它所指的文件进行各种操作。

缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”。
每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统
声明的,取名FILE。
例如,VS2013编译环境提供的 stdio.h 头文件中有以下的文件类型申明:

struct _iobuf {
   
        char *_ptr;
        int   _cnt;
        char *_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char *_tmpfname;
       };
typedef struct _iobuf FILE;

需要提及的是,不同的编译器FILE类型包含的内容不完全相同,但是大同小异,因此读者可以灵活变通,不必拘泥于某一种编译器的文件类型声明。

每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,而一般我们就是通过一个文件指针FILE来维护这个FILE结构的变量。
下面我们创建一个FILE指针的变量:

FILE* pf;//文件指针变量

定义pf是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区(是一个结构体变量)。通过该文件信息区中的信息就能够访问该文件。也就是说,通过文件指针变量能够找到与它关联的文件
超详细讲解C语言文件操作!!

文件的打开和关闭

文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。而关闭文件与否非常重要,在后面我会着重讲述这一个点。在打开文件的同时,都会返回一个FILE*的指针变量指向文章来源地址https://www.toymoban.com/news/detail-413950.html

到了这里,关于超详细讲解C语言文件操作!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【玩转Linux操作】详细讲解Shell的函数,exit,文件重定向,引入外部脚本的操作

    🎊专栏【​​​​​​​玩转Linux操作】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Love Story】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 bash 中的函数类似于C/C++中的函数,但是 return 的返回值与C/C++不同,返回的是 exit code ,取值为0~255,

    2024年02月12日
    浏览(41)
  • C语言文件操作(超详细)

    🍕博客主页:️自信不孤单 🍬文章专栏:C语言 🍚代码仓库:破浪晓梦 🍭欢迎关注:欢迎大家点赞收藏+关注 本文主要介绍C语言中文件操作的相关内容(例:文件读、写等相关函数)。 文件是以计算机硬盘为载体存储在计算机上的信息集合。是数据源的一种,最主要的作用

    2023年04月12日
    浏览(37)
  • 文件详细操作过程(C语言)

    🌞🌞🌞 千淘万漉虽辛苦 🌞🌞🌞 🌞🌞🌞 吹尽狂沙始到金 🌞🌞🌞 所谓“文件”一般指:存储在外部存储介质上数据的集合。操作系统是以文件为单位对数据进行管理的,如我们用word写的一篇文章、用C语言编的一个程序要保存在磁盘上都有必须以文件的形式,并且给相应

    2024年02月06日
    浏览(33)
  • C语言——文件操作(超全超详细)

    磁盘上的文件是文件 但是在程序设计中,我们一般谈的文件有两种: 程序文件、数据文件 (从文件功能的角度来分类的) 1.1 程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(Windows环境后缀为.exe) 1.2 数据文件 文件的内容不一定是程

    2024年02月04日
    浏览(43)
  • 【再识C进阶5(上)】详细介绍C语言文件操作——文件是用于存储数据

    💓作者简介: 加油,旭杏,目前大二,正在学习 C++ , 数据结构 等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏👀 🚚代码仓库:旭日东升 1👀 🌹欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖        在上一篇博客中,我们学习了一些 自定义类型

    2024年02月08日
    浏览(38)
  • 【Linux挂载磁盘】Linux系统挂载磁盘详细操作步骤

    近期公司服务运行环境,从Windows服务器切换到了Linux服务器,于是开始了一波操作,整了两天终于整完了,记录一下腾讯云挂载数据盘的过程,因为云磁盘的大小只有600GB,然后就没有进行分区,直接整个挂载到/data的目录下; 先上版本: 首先要确定的是云硬盘已经在腾讯云的控制台挂载

    2024年02月06日
    浏览(66)
  • 【C语言】#文件操作#有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。

    题目: (1)有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。 设5名学生的学号、姓名和3门课成绩如下: 在向文件stud写入数据后,应检查验证stud文件中的

    2024年02月04日
    浏览(45)
  • 万字长文·通俗易懂·一篇包掌握——输入/输出·文件操作(c语言超详细系列)(二)

    前言:Hello,大家好😘,我是心跳sy,上一节我们主要学习了格式化输入输出的基本内容,这一节我们对格式化进行更加深入的了解,对文件概念进行介绍,并且对输入、输出与文件读写的基本概念进行学习,本节主要对printf,scanf深入了解,并介绍文件处理函数,如fprintf,

    2024年02月13日
    浏览(69)
  • Ubuntu磁盘和目录和文件的相关操作

    目录 0、常见操作 1、目录的切换 2、查看目录及文件 3、目录的常见操作 4、文件的常见操作 0、常见操作 关机命令 重启命令 清除终端屏幕上的内容 显示最近执行的命令历史记录 Ctrl + C :中断当前运行的命令 Ctrl + D :退出当前终端会话 Ctrl + Alt + T :打开新终端窗口。 Ctrl

    2024年02月04日
    浏览(34)
  • 使用C语言实现磁盘的文件管理系统

    项目名称 磁盘文件管理系统 项 目 实 现 原 理 简 述 一、实验目的: 1.理解磁盘文件管理的概念和原理; 2.了解文件的逻辑结构和物理结构; 3.理解文件目录结构; 4.掌握磁盘存储空间管理、文件操作实现方法。 二、实验内容: 设计并实现一个简单的磁盘文件管理系统,用文

    2024年02月09日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包