图门市建设局网站网站价格套餐

张小明 2025/12/30 18:12:00
图门市建设局网站,网站价格套餐,成都网站建设公,专业格泰建站前言#xff1a;由于文件操作内容篇幅较大#xff0c;小编将用3篇博客重头到尾详细介绍#xff0c;争取让新手小白也能看懂并上手#xff0c;相关链接我会放在文章的结尾#xff0c;请关注博主的博客不要错过最新内容哦 目录 1.为什么使用文件 2. 文件是什么 2.1程序文…前言由于文件操作内容篇幅较大小编将用3篇博客重头到尾详细介绍争取让新手小白也能看懂并上手相关链接我会放在文章的结尾请关注博主的博客不要错过最新内容哦目录1.为什么使用文件2. 文件是什么2.1程序文件2.2 数据文件2.3文件名3.二进制文件和文本文件4.文件的打开和关闭4.1流和标准流1.流2.标准流4.2文件指针1.文件信息区2.文件缓冲区补充4.3.如何理解文件信息区流文件缓冲区的关系4.4文件的打开fopen4.5文件的关闭(fclosefclose函数注意事项往期内容1.为什么使用文件如果没有⽂件我们写的程序的数据是存储在电脑的内存中如果程序退出内存回收数据就丢失了等再次运⾏程序是看不到上次程序的数据的如果要将数据进行持久化的保存我们可以使用文件2. 文件是什么硬盘或磁盘上的文件是文件从文件功能的角度来分类1.程序文件 2.数据文件2.1程序文件程序文件包括源文件后缀为.c目标文件windows环境后缀为.obj可执行程序windows环境后缀为.exe2.2 数据文件程序运行时读写的数据存储文件在以前各章所处理数据的输⼊输出都是以终端为对象的即从终端的键盘输⼊数据运⾏结果显示在显示器上其实有时候我们会把信息输出到磁盘上当需要的时候再从磁盘上把数据读取到内存中使⽤这⾥处理的就是磁盘上⽂件2.3文件名⼀个⽂件要有⼀个唯⼀的⽂件标识以便⽤⼾识别和引⽤⽂件名包含3部分⽂件路径文件名主干文件后缀例如E:\code2\learn new c\test 11_25\ test.c文件路径E:\code2\learn new c\test 11_25\文件名主干test文件后缀.c为了⽅便起⻅⽂件标识常被称为⽂件名补充一下相对路径和绝对路径绝对路径是从根目录开始写相对路径是从当前文件位置开始.一个点代表当前目录..两个点代表上一级目录这时我们通过..使得test.txt文件出现在learn new c文件下而不是在test12_20内3.二进制文件和文本文件根据数据的组织形式数据⽂件被分为⽂本⽂件和⼆进制⽂件⼆进制文件数据在内存中以⼆进制的形式存储不加转换的输出到外存的⽂件中文本文件在存储前转换以ASCII字符的形式存储的⽂件⼀个数据在⽂件中是怎么存储的呢字符⼀律以ASCII形式存储数值型数据既可以⽤ASCII形式存储也可以使⽤⼆进制形式存储如有整数10000如果以ASCII码的形式输出到磁盘则磁盘中占⽤5个字节每个字符⼀个字节⽽⼆进制形式输出则在磁盘上只占4个字节通过图片发现直接用文本文档打开二进制文件是我们看不懂的乱码用VS以二进制来查看10000在内存中是以10 27 00 00 小端模式来存储的说明数据在内存中以⼆进制的形式存储且不加转换的输出到外存的⽂件中关于小端存储的内容请看C语言之数据在内存中的存储4000字超详解而文本文件则能通过ASII码一一对应上4.文件的打开和关闭4.1流和标准流1.流C程序针对⽂件、画⾯、键盘等的数据输⼊输出操作都是通过流操作的⼀般情况下我们要想向流⾥写数据或者从流中读取数据都是要打开流然后操作2.标准流C程序启动时,默认打开三个流这些流被称作标准流stdin–标准输入流从键盘输入(scanf函数从此读取数据)stdout–标准输出流从屏幕输出(printf函数向此输出数据)stderr–标准错误流从屏幕输出这三个流的类型都是FILE * 通常称为文件指针4.2文件指针1.文件信息区每个被使用的文件都在内存中开辟了⼀个相应的文件信息区⽤来存放文件的相关信息这些信息是保存在⼀个结构体变量中的。该结构体类型是由系统声明的取名 FILE.例如我们打开stdio.h 头⽂件中会有以下的⽂件类型类似的申明不同编译器大同小异typedef struct { int level; // 缓冲区满或空的程度 unsigned flags; // 文件状态标志 char fd; // 文件描述符 unsigned char hold; // 如无缓冲区则不读取字符 int bsize; // 缓冲区的大小 unsigned char *buffer; // 数据缓冲区的位置 // ... 其他编译器相关的字段 } FILE;通过定义pf一个指向FILE类型数据的指针变量可以使pf指向某个⽂件的⽂件信息区是⼀个结构体变量通过该⽂件信息区中的信息就能够访问该⽂件也就是说通过⽂件指针变量能够间接找到与它关联的⽂件2.文件缓冲区补充ANSI C 标准采⽤“缓冲文件系统” 处理数据文件的所谓缓冲⽂件系统是指系统自动地在内存中为程序中每⼀个正在使用的文件开辟⼀块“文件缓冲区”。缓冲区的大小根据C编译系统决定的4.3.如何理解文件信息区流文件缓冲区的关系流​ 就像是一条连接你的程序内存和外部设备如硬盘上的文件的高速公路。数据如同车辆在这条公路上单向或双向行驶输入/输出文件信息区​ 则是这条高速公路的管理中心。这个中心里有一张监控大屏FILE结构体上面记录着关键信息比如当前公路的拥堵状况缓冲区状态、最后一辆车开到了哪个位置文件指针的当前位置、这条路目前是只允许进货还是只允许出货文件的打开模式r/w等文件缓冲区​ 就是高速公路上的服务区或上下匝道。它避免了车辆数据直接频繁进出城市磁盘而是让它们在服务区集结然后成批上路或下路极大地提高了整体通行效率。三者如何协同工作1.建立连接打开文件当你调用fopen(data.txt, r)时系统会进行一系列操作在内存中创建一个文件信息区FILE结构体实例并填充初始信息如文件名、打开模式建立与该文件关联的流分配一块文件缓冲区返回一个指向该文件信息区的文件指针如FILE *pf此后你对文件的所有操作都通过这个指针来告知系统操作哪个“管理中心”2.数据传输读写操作当你使用fputs(Hello, pf)写入数据时字符串Hello并不是直接写入磁盘而是先被送到文件缓冲区服务区暂存文件信息区会记录当前写入的位置等信息当缓冲区被填满或遇到强制刷新fflush、关闭文件等操作时系统才将缓冲区内的数据一次性写入磁盘文件。读取数据的过程类似数据会从磁盘先被批量读入缓冲区程序再从缓冲区读取3.断开连接关闭文件调用fclose(pf)是关键一步它会确保文件缓冲区中任何未写入的数据被写入磁盘释放文件缓冲区占用的内存断开流的连接销毁文件信息区#include stdio.h int main() { // 打开文件建立流、创建文件信息区和缓冲区 // pf 是指向文件信息区的指针是操作流的“手柄” FILE *pf fopen(example.txt, w); if (pf NULL) { perror(文件打开失败); return 1; } // 通过 pf操作文件信息区向流中写入数据 // 数据 这是一条数据 会先进入文件缓冲区 fputs(这是一条数据, pf); // 可以调用 fflush 主动将缓冲区数据写入磁盘 // fflush(pf); // 关闭文件刷新缓冲区、断开流、销毁文件信息区 fclose(pf); pf NULL; // 良好习惯避免野指针 return 0; }关于函数fflush我会在后面讲到如何使用4.4文件的打开fopen功能用于打开文件建立程序与硬盘文件之间的数据通道参数filename 表示被打开的文件的名字这个名字可以绝对路径也可以是相对路径前面文件名有讲的很详细回去看mode 表示对打开的文件的操作方式具体见下面的表格返回值若文件成功打开该函数将返回⼀个指向 FILE 对象的指针若打开失败则返回 NULL 指针所以⼀定要 fopen 的返回值做判断来验证⽂件是否打开成下面这张图包含了所有文件操作方式本篇就先讲最基础的三种方式——”r、“w”、”a.什么是 “ 读 ” 什么是 “ 写 ”“ 读 ”输入数据将数据从磁盘文件中输入到内存中存储“ 写 ”输出数据将数据从内存中输出到磁盘文件中存储 r (只读为了输出数据打开一个已经存在的文本文件且不会修改原文件(若文件不存在会报错文件本身存在文件本身不存在用 perror 函数打印出错误信息perror(fopen);这里可以看到代码报错了原因就是电脑里没有这个i love you.txt文件那自然读取不了了 w (只写为了输出数据打开一个文本文件并清空原文件内容(若不存在会新建一个文件文件本身存在现在我们先在test.c文件旁新建一个文件并输入i love you接着运行这个代码#includestdio.h int main() { FILE* pf fopen(test666.txt, w); return 0; }我们会发现原来我们输入的数据不见了文件内容被清空了所以可以看到 ” w 方式打开文件的特点——会清空原文件的内容文件本身不存在现在我们把test666.txt文件删掉#includestdio.h int main() { FILE* pf fopen(test666.txt, w); return 0; }再次运行上面那个代码发现系统自动给我们新建了一个文件文件名就是参数当文件不存在时就会新建一个文件 a (追加向文本文件尾部添加数据且不会修改原文件(若文件不存在会新建一个文件文件存在现在我们先在test.c文件旁新建一个文件并输入i love you再用代码进行追加这里先用到输出操作后面会讲#includestdio.h int main() { FILE* pf fopen(test666.txt, a); fputs(too, pf); return 0; }可以看到文本文件追加了新的字符串too但若文件不存在就直接创建一个文件再输出4.5文件的关闭(fclose功能用于关闭文件删除程序与硬盘文件之间的数据通道参数stream 指向要关闭的流的 FILE 对象的指针返回值成功关闭 stream 指向的流会返回0否则会返回 EOFfclose函数注意事项fclose(pf);当你关闭了文件时其指针pf就会变为野指针故关闭文件文件后必须立即置为NULL#includestdio.h int main() { FILE* pf fopen(test.txt, r); if (pf NULL) { perror(fopen); //打印出错误信息 return 0; //返回状态码 1 表示异常退出 } fclose(pf); pf NULL;//置为NULL空指针 return 0; }往期内容数据结构的基石之动态内存管理详解从汇编底层了解函数栈帧的创建与销毁6500字超详解OK以上就是全部内容了若内容对大家有所帮助,可以收藏慢慢看,感谢大家支持后面还有2篇敬请期待本文有若有不足之处希望各位兄弟们能给出宝贵的意见。谢谢大家本期制作不易希望各位兄弟们能动动小手三连走一走支持一下三连必回0.0
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

怎么访问域名网站吗国内做app软件开发最好的公司

想要从零开始系统掌握Linux操作系统吗?作为Linux入门学习的经典教材,《鸟哥的Linux私房菜》完整版PDF资源为你提供了一条清晰的学习路径。这份免费的学习资料包含基础篇和服务器篇两大模块,从Linux基本概念到高级管理技巧,全方位覆…

张小明 2025/12/28 12:05:09 网站建设

网站的类别wordpress调用关键词

简介 文章指出大模型技术正在重塑IT行业,企业招聘要求大模型能力已成为趋势。为帮助程序员成功转型,文章提出了四阶段学习路径:大模型基础、RAG应用开发工程、大模型Agent应用架构、大模型微调与私有化部署。强调学习顺序的重要性&#xff0…

张小明 2025/12/28 12:04:36 网站建设

微网站建设难不难郑州比较大的软件公司

普源(Rigol)DHO900系列示波器是一款高性能的数字示波器,广泛应用于电子测试与信号分析。其内置的Web控制接口使得用户能够方便地通过浏览器远程控制示波器,进行数据采集和分析。本文将详细介绍如何设置普源DHO900的Web控制接口&am…

张小明 2025/12/28 12:04:03 网站建设

网站后台页面建筑企业

摘 要 本实验聚焦于受限玻尔兹曼机(RBM)在手写数字复原中的应用,采用MNIST数据集,通过归一化与二值化预处理适配RBM的伯努利分布输入要求。构建隐含单元数为20的RBM模型,经50轮对比散度算法训练,提取权重矩…

张小明 2025/12/28 12:03:30 网站建设

网站策划的流程网站建设效果图

Altium Designer安装与工作区配置:从零开始搭建高效设计环境 你是不是也经历过这样的场景? 刚装好Altium Designer,兴冲冲打开软件,准备画人生第一块PCB板,结果弹出一堆选项:“登录工作区?”“…

张小明 2025/12/28 12:02:57 网站建设

外贸类网站建设广东公园网站建设代理公司

波利亚解题法终极指南:掌握问题解决思维训练的方法论 【免费下载链接】波利亚著怎样解题分享 波利亚著《怎样解题》 项目地址: https://gitcode.com/Open-source-documentation-tutorial/953ed 你是否曾经面对复杂问题感到束手无策?是否渴望拥有一…

张小明 2025/12/28 12:02:23 网站建设