项目十一文件的应用

认识文件

概述

文件对大家来说很熟悉,常见的有txt文本文档,办公用的word文档等,主要作用就是保存数据

在C语言中,文件时计算机领域的一个重要概念,通常指存储在外部介质上数据的集合。操作系统以文件为单位对数据进行管理,以文件名访问文件。

分类

文件内容划分源文件、目标文件、数据文件等

C语言源程序文件的扩展名为.c,C语言的源文件经过编译,产生扩展名为.exe可执行文件,最后C语言的文件操作函数会把程序运行的结果存储到文件中,得到一个数据文件

例如大家在Dev C++编写一段输出“你好C语言”的的代码,经过编译和运行,会在命令行窗口输出结果,同时也可以在电脑上文件资源管理器上查看你自已保存的文件地址,就是数据文件

组织形式划分文本文件和二进制文件

文本文件指文件的内容由ASCII码组成,一个字符占用1字节,主要用于存储和传输文本数据,如文本文档、程序代码等,具有易于处理和读取,但存储效率较低,因为每个字符都需要占用一个字节的存储空间。

二进制文件由0和1组成,是以数据在内存中的存储形式原样输出到磁盘上所产生的文件,具有输入输出速度快,节省内存空间的优势,但可阅读性低

方法

在C语言中,文件的基本操作分三个步骤,即打开文件、读取数据和关闭文件

利用程序在打开文件时,首先在内存中为输入、输出数据开辟缓冲区;

向数据文件中写入数据时,先将数据送入文件缓冲区,当文件缓冲区写满时,在一起写到外存;

数据文件的读取数据也是一样,不过顺序相反。

如果缓冲区不满时结束操作,数据会丢失,但如果关闭文件,不管是否写满,都会把缓冲区数据

存入外存,保证数据不丢失。

不打开文件无法读取文件数据,不关闭文件会浪费操作系统资源,导致数据丢失。

文件类型指针

在C语言中,把指向一个文件的指针称为文件指针,通过文件指针可以对它所指的文件进行操作。

定义文件类型的指针一般格式

FILE  *指针变量标识符;

FILE 为大写,是系统定义的一个结构,该结构中含有文件名,文件状态和文件当前位置信息,

 *指针变量标识符是FILE指向的目的文件,可以是指针的变量

文件的打开和关闭

文件的打开(fopen()函数)

调用fopen()函数一般形式:

FILE  *p;
p=fopen(文件名, 文件使用模式);

文件使用模式的格式如下:

模式描述
r打开文件用于读取。如果文件不存在,则返回 NULL。
w打开文件用于写入。如果文件不存在,则创建该文件;如果文件已存在,则清空文件内容。
a打开文件用于追加。如果文件不存在,则创建该文件;如果文件已存在,则将写入内容追加到文件尾部。
r+打开文件用于读写。如果文件不存在,则返回 NULL。
w+打开文件用于读写。如果文件不存在,则创建该文件;如果文件已存在&#

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

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

相关文章

华为认证 | 2023年全国华为HCIE认证通过率是多少?

华为HCIE认证是很受业界认可的,毕竟HCIE的主体是华为,目前华为在业界的认可度比较高,设备的覆盖率也很高,所以参加华为认证的人比较多。 尤其是华为认证中的专家级认证—HCIE。 很多人都想知道全国有多少人通过了华为HCIE认证&a…

C语言每日一题(17)老人的数目

力扣 2678 老人的数目 给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息,信息用长度为 15 的字符串表示,表示方式如下: 前十个字符是乘客的手机号码。接下来的一个字符是乘客的性别。接下来两个字符是乘客的…

JMeter添加插件

一、前言 ​ 在我们的工作中,我们可以利用一些插件来帮助我们更好的进行性能测试。今天我们来介绍下Jmeter怎么添加插件? 二、插件管理器 ​ 首先我们需要下载插件管理器jar包 下载地址:Install :: JMeter-Plugins.org 然后我们将下载下来…

golang中的string与其他格式数据的转换方法

package mainimport ("fmt""strconv" )func main() {var str string "1721"b,_ : strconv.Atoi(str)fmt.Println(b)a,_ :strconv.ParseInt(str,10,32) fmt.Println(a)c,_:strconv.ParseBool(str)fmt.Println(c)//strconv.Parse 比较灵活&…

MYSQL(事务+锁+MVCC+SQL执行流程)理解

一)事务的特性: 一致性:主要是在数据层面来说,不能说执行扣减库存的操作的时候用户订单数据却没有生成 原子性:主要是在操作层面来说,要么操作完成,要么操作全部回滚; 隔离性:是自己的事务操作自己的数据,不会受到到其…

Centos 7 Zabbix配置安装

前言 Zabbix是一款开源的网络监控和管理软件,具有高度的可扩展性和灵活性。它可以监控各种网络设备、服务器、虚拟机以及应用程序等,收集并分析性能指标,并发送警报和报告。Zabbix具有以下特点: 1. 支持多种监控方式:可…

向量检索库Milvus架构及数据处理流程

文章目录 背景milvus想做的事milvus之前——向量检索的一些基础近似算法欧式距离余弦距离 常见向量索引1) FLAT2) Hash based3) Tree based4) 基于聚类的倒排5) NSW(Navigable Small World)图 向…

css3过渡

CSS3 过渡(CSS3 Transitions)是一种在元素从一种状态到另一种状态时,平滑地改变样式属性值的方法。它允许你在样式属性值变化时添加动画效果,而无需使用JavaScript或Flash。过渡是制作交互性和动画效果的有力工具,以下…

mysql—面试50题—1

注:面试50题将分为5个部分,每部分10题 一、查询数据 学生表 Student create table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssex varchar(10)); insert into Student values(01 , 赵雷 , 1990-01-01 , 男); insert into Student …

微信小程序之会议OA首页数据交互,会议状态,会议人数转换,会议室交互,WXS的使用

前言: 本篇博客使用结合了SpringMVC,mybatis,maven,小程序,如果不熟悉使用可以翻看我之前的博客,以便大家可以更好的学习!!! 一,会议OA首页数据的后台交互 这…

【jenkins】

1、库文件导出 pip freeze > requirements.txt

【SwiftUI模块】0060、SwiftUI基于Firebase搭建一个类似InstagramApp 2/7部分-搭建TabBar

SwiftUI模块系列 - 已更新60篇 SwiftUI项目 - 已更新5个项目 往期Demo源码下载 技术:SwiftUI、SwiftUI4.0、Instagram、Firebase 运行环境: SwiftUI4.0 Xcode14 MacOS12.6 iPhone Simulator iPhone 14 Pro Max SwiftUI基于Firebase搭建一个类似InstagramApp 2/7部分-搭建Tab…

机器学习笔记 - 特斯拉的占用网络简述

一、简述 ​ 2022 年,特斯拉宣布即将在其车辆中发布全新算法。该算法被称为occupancy networks,它应该是对Tesla 的HydraNet 的改进。 自动驾驶汽车行业在技术上分为两类:基于视觉的系统和基于激光雷达的系统。后者使用激光传感器来确定物体的存在和距离,而视觉系统…

算法通关村第十一关青铜挑战——移位运算详解

大家好,我是怒码少年小码。 计算机到底是怎么处理数字的? 数字在计算机中的表示 机器数 一个数在计算机中的二进制表示形式,叫做这个数的机器数。 机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0&am…

2310x86版本skia的第一个示例

我也懒得去编译了(我也编译不来),要下载的东西太多,而skia-build项目中没有x86版本. 所以从这里下载了别人的,编译方法. 下载后,要改两个地方: 1,SkRect文件中使用了max/min,删除相应的std:: 2,SkTFitsIn.h文件中的std::numeric_limits<typename sk_strip_enum<D>::ty…

【Java集合类面试八】、 介绍一下HashMap底层的实现原理

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a; 介绍一下HashMap底层的…

Linux防火墙Centos6的常用命令iptables

文章目录 一、iptables基础知识二、作者玩玩的配置文件三、iptables中常用的参数以及作用-j参数的动作类型 四、安装iptables五、iptables启动命令六、iptables命令结构命令例子默认执行方式执行iptables命令和写入配置文件两种方式的对比 相对常用的命令参考文档 一、iptables…

leetcode做题笔记200. 岛屿数量

给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以假设该网格的四条边…

数据安全与PostgreSQL:最佳保护策略

在当今数字化时代&#xff0c;数据安全成为了企业不可或缺的一环。特别是对于使用数据库管理系统&#xff08;DBMS&#xff09;的组织来说&#xff0c;确保数据的完整性、保密性和可用性至关重要。在众多DBMS中&#xff0c;PostgreSQL作为一个强大而灵活的开源数据库系统&#…

表存储数据模型:宽列和时间序列

表格存储是阿里云第一个分布式多模型数据库&#xff0c;是一种NoSQL数据库。目前&#xff0c;很多应用系统底层不再单纯依赖关系型数据库&#xff0c;而是根据不同的业务场景使用不同的数据库。例如&#xff0c;缓存KeyValue数据将存储在Redis中&#xff0c;文档数据将存储在Mo…