[C语言进阶详解]文件操作(上)

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

CSDN的各位友友们你们好,今天千泽为大家带来的是

C语言详解-文件操作篇,

接下来让我们一起了解一下JAVA的学习路线吧!

如果对您有帮助的话希望能够得到您的支持和关注,我会持续更新的!

一.文件的概念

计算机文件,是存储在某种长期储存设备或临时存储设备中的一段数据流,并且归属于计算机文件系统管理之下。所谓“长期储存设备”一般指磁盘、光盘、磁带等。而“短期存储设备”一般指计算机内存

使用文件的好处:

使用文件我们可以将数据直接存放在电脑的硬盘上,做到了数据的持久化。

文件分为两种:

程序文件
源程序文件(后缀.c等),目标文件(Windows环境下后缀为.obj),可执行程序(Windows环境下为.exe),预处理文件(.i),汇编文件(.b)

数据文件
文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行时需要从中读取数据的文件 

文件名

一个文件要有唯一的文件表示,以便用户识别和引用。

文件名包含3部分:文件路径;文件名主干;文件后缀

例如:c:\code\test.txt

[C语言进阶详解]文件操作(上)

二. 文件的基本操作

文件的打开和关闭

当我们使用代码对文件进行操作时,每一个被使用的文件都在内存开辟了一个相应的文件信息区,用来存放文件的相关信息(文件名、文件的状态、文件当前的位置等),注意:文件信息区存放的不是文件中的内容,但是可以通过文件信息区维护该文件。文件信息区本质上是一个结构体变量。结构体类型是由系统定义的,取名FILE

在VS2013编译环境提供的stdio.h头文件中文件有以下的文件类型声明

​typedef struct _iobuf {
        char *_ptr;
        int   _cnt;
        char *_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char *_tmpfname;
       }FILE;
FILE* pf//文件指针变量

 定义pf是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区(是一个结构体变 量)。通过该文件信息区中的信息就能够访问该文件。也就是说,通过文件指针变量能够找到并维护与它关联的文件

文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。

#inlcude <stdio.h>
int main()
{
    //打开文件
    FILE* pFile = fopen("test.c", "w");
    //关闭文件
    fclose(pFile);
    return 0;

当我们打开文件时,会自动创建一个文件信息区,此时我们可以定义一个文件指针指向创建的文件信息区,打开文件时,会返回一个FILE* 的指针指向开辟的文件信息区。这有点像动态开辟时伴随着内存中会创建一段内存空间,返回这段空间的起始地址。
在文件操作完之后我们应该关闭文件,释放文件信息区,这有点像动态开辟结束后需要释放掉动态开辟的空间
ANSIC 规定使用fopen函数来打开文件,fclose函数来关闭文件pFile

三.文件读写所用的函数

[C语言进阶详解]文件操作(上)

接下来,我们一起来看一下官方的讲解

[C语言进阶详解]文件操作(上)

 返回指定流的内部文件位置指示器当前指向的字符。然后内部文件位置指示器前进到下一个字符。
如果流在调用时位于文件末尾,则该函数返回 EOF 并设置流的文件末尾指示符 (feof)。
如果发生读取错误,函数返回 EOF 并设置流的错误指示符 (ferror)。
fgetc 和 getc 是等价的,除了 getc 可能在某些库中实现为宏。
函数的返回值设置为int类型为了适应返回失败后EOF的值

[C语言进阶详解]文件操作(上)

向流中写入一个字符并推进位置指示器。

字符写在流的内部位置指示器指示的位置,

然后自动前进一个位置成功时,返回写入的字符。

如果发生写入错误,则返回 EOF 并设置错误指示符 (ferror)。

[C语言进阶详解]文件操作(上)

从流中读取字符并将它们作为 C 字符串存储到 str 中,直到读取 (num-1) 个字符或到达换行符或end of file,以先发生者为准。
 换行符使 fgets 停止读取,但函数认为它是有效字符并包含在复制到 str 的字符串中。
在复制到 str 的字符之后自动附加终止空字符。
fgets 与 gets 不同点:fgets 不仅接受流参数,而且还允许指定 str 的最大大小,并在字符串中包含任何结束换行符。
如果在尝试读取字符时遇到文件结尾,则会设置 eof 指示符 (feof)。如果这发生在可以读取任何字符之前,则返回的指针是一个空指针(并且 str 的内容保持不变)。
成功输出返回指向str的指针
如果发生读取错误,则设置错误指示符(ferror)并返回空指针(但 str 指向的内容可能已更改)。

[C语言进阶详解]文件操作(上)

 函数从str指向的位置复制字符到stream所指向的位置直到遇见了结束符'\0',结束符不会被复制到stream流里
fputs与puts不同:fputs需要指定参数流,而且fputs不会像流中添加额外的字符,但是puts会添加一个换行符
如果成功输出,返回非负数
如果输出失败,返回EOF

 [C语言进阶详解]文件操作(上)

 [C语言进阶详解]文件操作(上)

[C语言进阶详解]文件操作(上)

从流中读取 count 个元素的数组,每个元素的大小为 size 个字节,并将它们存储在 ptr 指定的内存块中。
流的位置指示符按读取的字节总数提前。
如果成功,读取的总字节数是 (size*count)
如果此数字与计数参数不同,则表明发生读取错误或读取时已到达文件末尾。在这两种情况下,都设置了正确的指示符,可以分别使用 ferror 和 feof 检查。
如果 size 或 count 为零,则函数返回零并且流状态和 ptr 指向的内容都保持不变。

[C语言进阶详解]文件操作(上)

从 ptr 指向的内存块到流中的当前位置写入一个包含 count 个元素的数组,每个元素的大小为 size 字节。
流的位置指示符按写入的字节总数提前。
在内部,函数将 ptr 指向的块解释为 unsigned char 类型的 (size*count) 个元素的数组,并将它们按顺序写入流,就像为每个字节调用 fputc 一样。 
如果成功,写入的总字节数是 (size*count)
如果此数字与计数参数不同,则写入错误会阻止函数完成。在
情况下,将为流设置错误指示器 (ferror)。
如果 size 或 count 为零,则函数返回零并且流状态和 ptr 指向的内容都保持不变。

今天的分享先到这里,关于文件操作相关知识还会有下篇的!文章来源地址https://www.toymoban.com/news/detail-415011.html

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

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

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

相关文章

  • 【C进阶】文件操作(上)--(详解、非常适合基础入门学习)

    目录 1. 为什么使用文件 2. 什么是文件  2.1 程序文件 2.2 数据文件 2.3 文件名  3. 文件的打开和关闭💢 3.1 文件指针1️⃣ 3.2 文件的打开和关闭2️⃣  ⭕相对路径  ⭕绝对路径 4. 文件的顺序读写 1.fputc写文件--字符输出函数 2.fgetc(pf)读文件--字符输入函数 3.fputs--文本行输出函数

    2024年02月09日
    浏览(43)
  • 第五十八天学习记录:C语言进阶:文件操作1

    在程序设计中,一般有两种文件:程序文件、数据文件 程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。 数据文件 文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件

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

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

    2024年02月08日
    浏览(38)
  • 【C语言】详解文件与文件操作

    文件是记录在外存上的相关信息的命名组合,但是在程序设计中,我们⼀般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。 程序文件包括: 源程序文件 (后缀为.c) 目标文件 (windows环境后缀为.obj) 可执行程序 (windows环境后缀为.exe) 文件的内容

    2024年01月22日
    浏览(39)
  • 【C语言】文件操作 -- 详解

    磁盘上的文件是文件。 1、为什么要使用文件         举个例子,当我们想实现一个 “通讯录” 程序时,在通讯录中新建联系人、删除联系人等一系列操作,此时的数据存储于内存中,程序退出后所有数据都会随之消失。为了让通讯录中的信息得以保存,也就是想让 数据

    2024年02月11日
    浏览(36)
  • 详解C语言—文件操作

    目录 1. 为什么使用文件 2. 什么是文件 3. 文件的使用 文件指针 文件的打开和关闭 三个标准的输入/输出流:  4. 文件的顺序读写 对字符操作:  fputc:  fgetc:   练习复制整个文件: 对字符串操作: fputs:  fgets: fprintf:  fscanf: 辨析sprintfsscanf: 对二进制操作:  fwrit

    2024年02月07日
    浏览(37)
  • 【C语言】文件操作详解

    hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注🥰🥰收藏🌹🌹🌹 💥 个人主页:大耳朵土土垚的博客 💥 所属专栏:C语言学习笔记 💥对于C语言学习疑问的都可以在上面的专栏进行学习哦~ 有问题可以写在评论区或者私信我哦~ 如果没有⽂件,我们写的

    2024年03月12日
    浏览(42)
  • (C语言)文件操作-----详解

    目录 1. 为什么使用文件 2. 什么是文件 程序文件 数据文件  文件名  3. 文件的打开和关闭 文件指针  文件的打开和关闭 🙉🙉打开文件(fopen函数)  🙈🙈关闭文件(fclose函数)  补充 : 相对路径 绝对路径 4. 文件的顺序读写  顺序读写函数  字符输入函数 —— fputc函数

    2023年04月15日
    浏览(48)
  • 【C语言】文件操作详解(一)

    💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃 个人主页 :阿然成长日记 👈点击可跳转 📆 个人专栏: 🔹数据结构与算法🔹C语言进阶 🚩 不能则学,不知则问,耻于问人,决无长进 🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍 为了是数据长久化存

    2024年02月15日
    浏览(37)
  • 【c语言】详解文件操作(二)

    fgetc 为字符输入函数, fputc 为字符输出函数,适用所以输入流和输出流 函数原型: 该函数从 stream 指向的输入流中读取 unsigned char 型的下一个字符的值,并将其转换为 int 型,并返回。若在流中 检查到文件末尾 ,则设置该流的文件结束指示符并返回 EOF ;如果 发生读取错误

    2024年02月08日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包