会员网站建设,个人如何做网页,桂林象鼻山景点介绍,洛阳免费网站建设欢迎来CILMY23的博客喔#xff0c;本篇为【C语言】文件操作篇-----程序文件和数据文件#xff0c;文件的打开和关闭#xff0c;二进制文件和文本文件【图文详解】#xff0c;感谢观看#xff0c;支持的可以给个一键三连#xff0c;点赞关注收藏。 前言 在了解完动态内存管… 欢迎来CILMY23的博客喔本篇为【C语言】文件操作篇-----程序文件和数据文件文件的打开和关闭二进制文件和文本文件【图文详解】感谢观看支持的可以给个一键三连点赞关注收藏。 前言 在了解完动态内存管理我们本期将使用一些文件指针来对外部文件进行操作 前两期博客 动态内存管理1 【C语言】内存操作篇---动态内存管理----mallocrealloccalloc和free的用法【图文详解】-CSDN博客 动态内存管理2 【C语言】动态内存管理------常见错误以及经典笔试题分析柔性数组【图文详解】-CSDN博客 目录
一、为什么会有文件
二、什么是文件
2.1程序文件
2.2数据文件
2.3之间的区别
三、文件名
四、 二进制文件和文本文件
五、文件的打开和关闭 4.1流和标准流
4.1.1流
4.1.2标准流
4.2文件指针
4.3文件的打开和关闭
4.3.1 fopen
4.3.2 fclose
fopen和fclose的使用 文件操作的表格 一、为什么会有文件
文件存在的主要目的是为了存储、组织和共享信息而在计算机学习中我们知道在内存上运行的东西如果程序退出了内存就会被回收我们需要长期存储就有了文件来进行存储而文件是存储到硬盘上的可以长期保存。 二、什么是文件
文件是计算机存储数据的一种方式它可以存储文本、图像、音频、视频等各种类型的信息。文件通常由一个或多个字符序列组成每个字符可以是字母、数字、符号或控制字符。文件通常被保存在计算机的存储介质例如硬盘、固态硬盘、光盘中并用于存储和传输数据。文件可以通过文件管理系统进行访问、编辑和管理。在计算机系统中文件是组织和处理数据的基本单位它们被用于存储和传输各种类型的信息。
2.1程序文件
程序文件也称为可执行文件或代码文件是包含计算机程序代码的文件。它们通常包含一系列指令和命令告诉计算机如何执行特定的任务。程序文件在计算机上运行时会被解释和执行从而实现特定的功能。
程序文件包括源程序文件后缀为.c,目标文件windows环境后缀为.obj,可执行程序windows 环境后缀为.exe等。
win11下的图标 2.2数据文件
文件的内容不一定是程序而是程序运行时读写的数据比如程序运行需要从中读取数据的文件或者输出内容的文件。数据文件是存储数据信息的文件本篇主要讨论数据文件它们包含特定领域的数据例如文本文件、图像文件、音频文件、视频文件等。数据文件用于存储和保存实际的数据内容这些数据可以被程序文件读取、处理和操作。
数据文件可以存储各种类型的数据例如文本文件中存储文本内容图像文件中存储图像数据等。 常见的数据文件类型 文本文件 .txt文件存储文本内容例如存储程序代码、日志文件等。.csv文件存储以逗号分隔的数据例如存储表格数据、统计数据等。.json文件存储以JSON格式表示的数据例如存储配置文件、API响应数据等。.xml文件存储以XML格式表示的数据例如存储配置文件、数据传输等。.html文件存储超文本标记语言用于网页的展示。 图像文件 .jpg或.jpeg文件用于存储压缩的数字图像常用于照片和图像的传输和显示。.png文件用于存储无损压缩的数字图像支持透明背景常用于Web图像和图形设计。.gif文件用于存储动画图像支持多帧的图像文件格式。.bmp文件无损位图格式用于存储图像数据的原始位图信息。 音频文件 .mp3文件常用的音频压缩格式用于存储音乐、声音等。.wav文件无损音频格式用于存储音频数据的原始波形信息。 视频文件 .mp4文件常用的视频压缩格式用于存储视频数据适合在Web和移动设备上播放。.avi文件Windows系统中常用的视频格式支持多种视频和音频编解码器。.mov文件苹果公司开发的视频格式通常用当谈到数据文件时 2.3之间的区别
程序文件包含计算机程序的代码和指令用于实现特定功能并由计算机解释和执行。而数据文件则是存储实际数据信息的文件供程序文件读取、处理和操作。简单来说程序文件是计算机指令的集合控制计算机的行为数据文件是实际数据的存储媒介供程序文件使用。
三、文件名
文件名是指文件在文件系统中的名称。它是用来标识特定文件的字符串并用于定位、访问和识别文件。文件名通常包括两部分文件的名称和文件的扩展名后缀。 文件名称文件名称是文件的主要标识用于描述文件的内容或作用。文件名称可以由字母、数字和一些特殊字符组成但通常不包含文件系统不允许的特殊字符和空格。文件名称一般应具有描述性以方便用户和开发者快速识别和查找文件。例如对于一个名为example.txt的文本文件example就是文件的名称。 扩展名后缀扩展名是文件名中的一部分用于标识文件的类型或格式。扩展名出现在文件名的最后通常由一个点.和几个字母组成。扩展名可以直接指示用于打开或处理文件的程序。例如对于一个名为example.txt的文本文件.txt就是该文件的扩展名它表示这是一个文本文件。 而一个文件要有一个唯一的文件标识以便用户识别和引用。 而我们更常说的文件名包含3部分文件路径文件名主干文件后缀 例如 C:\code\test.txt 为了方便文件标识常被称为文件名。
四、 二进制文件和文本文件 按照数据的组织形式我们又把数据文件称为二进制文件文本文件 数据在内存中以二进制的形式存储如果不加转换的输出到外存就是二进制文件。 如果要求在外存上以ASCII码的形式存储则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。 ⼀个数据在内存中是怎么存储的呢 字符⼀律以ASCII形式存储数值型数据既可以用ASCII形式存储也可以使用二进制形式存储。 如有整数10000如果以ASCII码的形式输出到磁盘磁盘读取的信息就是‘1’‘0’‘0’‘0’‘0’则磁盘中占用5个字节每个字符⼀个字节而二进制形式输出则在磁盘上只占4个字节VS2019测试。 五、文件的打开和关闭 4.1流和标准流
4.1.1流
在计算机科学中流Stream是一种用于在程序和外部设备之间传输数据的概念我们程序的数据需要输出到各种外部设备也需要从外部设备获取数据不同的外部设备的输入输出作各不相同为了方便程序员对各种设备进行方便的操作我们抽象出了流的概念我们可以把流想象成流淌着字符的河。 C程序针对文件、画面、键盘等的数据输入输出操作都是同流操作的。 ⼀般情况下我们要想向流里写数据或者从流中读取数据都是要打开流然后操作
4.1.2标准流 我们操作文件需要打开流为什么我们从键盘输入数据向屏幕上输出数据并没有打开流呢 那是因为C语言程序在启动的时候默认打开了3个流 • stdin - 标准输入流在大多数的环境中从键盘输入。 • stdout - 标准输出流大多数的环境中输出至显示器界面。 • stderr - 标准错误流大多数环境中输出到显示器界面。 这是默认打开了这三个流我们使用scanf、printf等函数就可以直接进行输入输出操作的。 stdin、stdout、stderr三个流的类型是 FILE* 通常称为文件指针。 C语言中就是通过 FILE* 的文件指针来维护流的各种操作的。
4.2文件指针
缓冲文件系统中关键的概念是“文件类型指针”简称“文件指针”。 每个被使用的文件都在内存中开辟了⼀个相应的文件信息区用来存放文件的相关信息如文件的名字文件状态及文件当前的位置等。这些信息是保存在⼀个结构体变量中的。该结构体类型是由系统声明的取名FILE.
struct _iobuf {char* _ptr;int _cnt;char* _base;int _flag;int _file;int _charbuf;int _bufsiz;char* _tmpfname;
};
typedef struct _iobuf FILE;
不同的C编译器的FILE类型包含的内容不完全相同但是大同小异。 每当打开一个文件的时候系统会根据文件的情况自动创建⼀个FILE结构的变量并填充其中的信 息使用者不必关心细节。 ⼀般都是通过一个FILE的指针来维护这个FILE结构的变量这样使用起来更加⽅便。
创建一个 FILE的指针变量
FILE* pf; 定义pf是⼀个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区是⼀个结构体变量。通过该文件信息区中的信息就能够访问该文件。也就是说通过文件指针变量能够间接找到与它关联的文件。 4.3文件的打开和关闭 文件的操作一共有三步 1.打开文件 2.操作文件 3.关闭文件 文件在读写之前应该先打开文件在使用结束之后应该关闭文件。 在编写程序的时候在打开文件的同时都会返回⼀个FILE*的指针变量指向该文件也相当于建立了指针和文件的关系。
4.3.1 fopen
fopen可以在cplusplus网查询
fopen - C Reference (cplusplus.com) 函数原型如下
FILE * fopen ( const char * filename, const char * mode );
函数介绍如下 函数的使用和案例如下 fopen的介绍 fopen的介绍
fopen的原型中有两个形参 const char * filename, const char * modefilename就是一个文件名我们这里说的文件名通常都是文件路径文件名主干文件后缀其次是modemode有方式方法的意思这里说的就是我们用什么方式打开这个文件方式对应的是表格中的字符 这里是edge的翻译如下 4.3.2 fclose
fclose可以在cplusplus查询
fclose - C Reference (cplusplus.com) fclose的介绍 fclose的功能和使用案例 fclose的介绍 fclose函数是C语言中用于关闭文件的函数。它用于将打开的文件与文件指针断开连接并释放相关资源。ANSIC规定使用 fopen 函数来打开文件fclose 来关闭文件。注意在关闭文件之前务必确保对文件的所有读写操作都已完成否则可能会导致数据丢失或其他错误。此外如果文件未成功打开文件指针为NULL则不应使用fclose函数来关闭文件。
fopen和fclose的使用
打开当前目录中的文件
#includestdio.hint main()
{FILE* pf fopen(text.txt, r);if (pf NULL){perror(fopen);return ;}fclose(pf);pf NULL;
}
fopen和fclose的使用如上在上述示例中先使用fopen函数打开一个文件text.txt并获得一个文件指针然后对文件进行操作最后使用fclose函数关闭文件。关闭文件后可以确保在程序中不再使用该文件。
如果我们并未发现文件我们就使用perror直接打印出错误信息。
效果如下 打开成功 打开绝对路径的文件 #includestdio.hint main()
{FILE* pf fopen(E:\\Users\\云山若汐\\Desktop\\新建 文本文档 (2).txt, r);if (pf NULL){perror(fopen);return ;}fclose(pf);pf NULL;
}
失败 成功 打开相对路径C语言用.表示当前目录..表示上一级目录 这是我的当前路径C:\Users\云山若汐\source\repos\test2\test2
而我现在把文件放到repos下
我的文件路径可以写成./../../test.txt
#includestdio.hint main()
{FILE* pf fopen(./../../test.txt, w);if (pf NULL){perror(fopen);return ;}fclose(pf);pf NULL;
}
失败 成功 文件操作的表格 感谢各位同伴的支持本期文件操作篇就讲解到这啦如果你觉得写的不错的话可以给个一键三连点赞关注收藏若有不足欢迎各位在评论区讨论。