当前位置: 首页 > news >正文

文件操作(c/c++)

文件操作可以概括为几步:

        打开文件,写入文件,读取文件,关闭文件

FILE

FILE 是一个在C语言中用于文件操作的库函数,它提供了一系列函数来实现文件的创建、打开、读取、写入、关闭等操作。FILE 库函数可以帮助开发者处理各种文件操作,如文本文件的读写、二进制文件的读写、文件的定位指针操作等。

我们通过FILE*来把一个指针来指向要处理的文件,如下我们定义了一个名为fp的文件指针

FILE* fp;

打开文件

在c语言中我们使用fopen()这个函数来打开文件并赋予其读写权限,让我们通过一个表格来认识所有的权限格式

权限格式权限备注
r只读如果文件不存在时会报错
w只写文件存在时,会覆盖原有内容;文件不存在时会建立一个新文件
a追加文件存在时,会在原有内容的尾部追加内容;文件不存在时会建立一个新文件
r+读写文件不存在时会报错
w+文件不存在时会建立新文件
a+写入方式是追加写入

在这写权限格式前加上b(如rb),我们执行的读写操作是以二进制执行的

那么认识到权限以后我们就来讲讲fopen操作

/*
格式为:
FILE* fp
fp=fopen(文件名,操作权限);
*/fp=fopen("data.dat","r");
//以只读方式来打开文件data.datchar s[10]="data.dat";
fp=fopen("data.dat","r");
//使用字符串数组来表示文件名
//可以执行与第一次打开相同的操作

写入文件

在c语言中我们一般使用fwrite()或者fprintf()这两个函数来向文件中写入内容,两者的区别就在于前者用于二进制处理,所以执行该操作后文件中的内容不能直观的观察出来,因此我们主要介绍fprintf()来对文件写入。


FILE* fp;
//定义文件指针fp=fopen("data.dat","w");
//以写入方式打开文件int a=5;
fprintf(fp,"%d\n",a);
//向fp指向的文件中写入a/*
写入格式为
fprintf(文件地址,写入格式,对应格式的数据)
*/int b[5][5]= {{1},{2,3},{4,5,6},{7,8,9,10},{11,12,13,14,15}};
for(int i=0; i<5; i++)for(int j=0; j<=i; j++) {fprintf(fp,"%d ",b[i][j]);if(j==i)fprintf(fp,"\n");}
//循环读入数组三角形
/*
1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15 
*/

读取文件

读取文件我们使用fscanf()来读取


/*
写入格式为
fscanf(文件地址,写入格式,对应格式的数据地址)
*/FILE* fp;
//定义文件指针fp=fopen("data.dat","r");
//以读取方式打开文件int a;
fscanf(fp,"%d",&a);
//读取fp所指文件中第一个数字int b[5][5];
for(int i=0; i<5; i++)for(int j=0; j<=i; j++) {fscanf(fp,"%d",&b[i][j]);}
//循环读取数组三角形
/*
1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15 
*/

关闭文件

我们在文件操作后,写入的数据内容会寄存在一个缓存区中,在我们关闭文件后,才能让文件转移到内存中,我们使用fclose()来完成这个操作。

/*
格式为
fclose(文件地址);
*/FILE* fp;fp=fopen("data.dat","r");fclose(fp);
//关闭fp指向文件

通过这些介绍,相信你已经基本掌握了文件操作。

相关文章:

文件操作(c/c++)

文件操作可以概括为几步&#xff1a; 打开文件&#xff0c;写入文件&#xff0c;读取文件&#xff0c;关闭文件 FILE FILE 是一个在C语言中用于文件操作的库函数&#xff0c;它提供了一系列函数来实现文件的创建、打开、读取、写入、关闭等操作。FILE 库函数可以帮助开发者处理…...

设计模式-适配器

文章目录 一、简介二、适配器模式基础1. 适配器模式定义与分类2. 适配器模式的作用与优势3.UML图 三、适配器模式实现方式1. 类适配器模式2. 对象适配器模式3.类适配器模式和对象适配器模式对比 四、适配器模式应用场景1. 继承与接口的适配2. 跨平台适配 五、适配器模式与其他设…...

C. Queries for the Array - 思维

分析&#xff1a; 分析出现矛盾的地方&#xff0c;也就是可能遇到0&#xff0c;并且已有字符串的长度小于等于1&#xff0c;另一种情况就是&#xff0c;遇到了1并且已有字符串不是排好序的&#xff0c;或者遇到了0已有字符串是排好序的&#xff0c;那么可以遍历字符串&#xff…...

音频——硬件拓扑

文章目录 硬件拓扑I2S 数据通路五线模式四线模式两线 TX两线 RX 典型应用硬件连接数据流 硬件拓扑 控制路径&#xff1a;UART/I2C/SPI数据路径&#xff1a;I2S 简略图如下 I2S 数据通路 五线模式 四线模式 两线 TX 两线 RX 典型应用 硬件连接 控制信号&#xff1a;SPI 用…...

Oracle表索引查看方法总结(查看oracle表索引)

Oracle表索引查看方法总结 Oracle是当前应用最广泛的关系数据库&#xff0c;也是多数大型企业使用的数据库。Oracle表索引在提高查询效率方面起着至关重要的作用&#xff0c;掌握该方法也是技术人员必备技能之一。本文总结了几种常见的查看Oracle表索引信息的方法&#xff0c;…...

react css 污染解决方法

上代码 .m-nav-bar {background: #171a21;.content {height: 104px;margin: 0px auto;} }import React from "react"; import styles from ./css.module.scssexport default class NavBar extends React.Component<any, any> {constructor (props: any) {supe…...

volatile 关键字 与 CPU cache line 的效率问题

分析&回答 Cache Line可以简单的理解为CPU Cache中的最小缓存单位。目前主流的CPU Cache的Cache Line大小都是64Bytes。假设我们有一个512字节的一级缓存&#xff0c;那么按照64B的缓存单位大小来算&#xff0c;这个一级缓存所能存放的缓存个数就是512/64 8个。具体参见下…...

又一关键系统上线,理想车云和自动驾驶系统登陆OceanBase

8 月 1 日&#xff0c;理想汽车公布 7 月交付数据&#xff0c;理想汽车 2023 年 7 月共交付新车 34,134 辆&#xff0c;同比增长 227.5%&#xff0c;并已连续两个月交付量突破三万。至此&#xff0c;理想汽车 2023 年累计交付量已经达到 173,251 辆&#xff0c;远超 2022 年全年…...

SIEM(安全信息和事件管理)解决方案

什么是SIEM 安全信息和事件管理&#xff08;SIEM&#xff09;是一种可帮助组织在安全威胁危害到业务运营之前检测、分析和响应安全威胁的解决方案&#xff0c;将安全信息管理 (SIM) 和安全事件管理 (SEM) 结合到一个安全管理系统中。SIEM 技术从广泛来源收集事件日志数据&…...

Go 自学:map关联数组

以下代码展示了如何建立一个map。 我们可以使用delete删除map中的元素。 我们还可以使用loop遍历map中的所有元素。 package mainimport ("fmt" )func main() {languages : make(map[string]string)languages["JS"] "Javascript"languages[&qu…...

c#多态(override)的使用

方法重写&#xff08;override&#xff09;:多态&#xff0c;通过父类类型对象&#xff0c;调用子类当中对应方法的实现。 细节&#xff1a;子类当中的override方法会“抹杀”父类当中对应virtual方法 不使用多态时&#xff0c;父类调用子类方法时&#xff0c;会调用父类的方法…...

kafka 动态扩容现有 topic 的分区数和副本数

文章目录 [toc]创建一个演示 topic生产一些数据使用消费者组消费数据增加分区无新数据产生&#xff0c;有旧数据未消费有新数据产生&#xff0c;有旧数据未消费 增加副本创建 json 文件使用指定的 json 文件增加 topic 的副本数使用指定的 json 文件查看 topic 的副本数增加的进…...

【数据结构】Golang 实现单链表

概念 通过指针将一组零散的内存块串联在一起 &#xff0c; 把内存块称为链表的“结点”。 记录下个结点地址的指针叫作后继指针 next &#xff0c;第一个结点叫作头结点&#xff0c;把最后一个结点叫作尾结点 。 代码实现 定义单链表 在 golang 中可以通过结构体定义单链表…...

云服务器利用Docker搭建sqli-labs靶场环境

一、安装宝塔面板 使用xshell、electerm、SecureCRT等远程终端连接登陆上云服务器&#xff0c;在Linux宝塔面板使用脚本安装 安装后&#xff0c;如下图&#xff1a;按照提示&#xff0c;在云服务器防火墙/安全组放行Linux宝塔面板的端口 在浏览器打开上述网址&#xff0c;登…...

jQuery成功之路——jQuery介绍和jQuery选择器概述

一、jQuery介绍 1.1 jQuery概述 jQuery的概述 jQuery是一个快速、简洁的JavaScript框架。jQuery设计的宗旨是“write Less&#xff0c;Do More”&#xff0c;即倡导写更少的代码&#xff0c;做更多的事情。JQuery封装了JavaScript常用的功能代码&#xff0c;提供了一套易于使…...

极限五分钟,在宝塔中用 Docker 部署升讯威在线客服系统

最近客服系统成功经受住了客户现场组织的压力测试&#xff0c;获得了客户的认可。 客户组织多名客服上线后&#xff0c;所有员工同一时间打开访客页面疯狂不停的给在线客服发消息&#xff0c;系统稳定无异常无掉线&#xff0c;客服回复消息正常。消息实时到达无任何延迟。 本文…...

Java--静态字段与静态方法

1、静态字段 如果将一个字段定义为static&#xff0c;每个类只有一个这样的字段。而对于非静态的实例字段&#xff0c;每个对象都有自己的一个副本。 例如&#xff1a; class Employee {private static int nextId 1;private int id;... }其中&#xff0c;每一个Employee对…...

多线程的五种“打开”方式

1 概念 1.1 线程是什么&#xff1f;&#xff1f; 线程&#xff08;Thread&#xff09;是计算机科学中的一个基本概念&#xff0c;它是进程&#xff08;Process&#xff09;中的一个执行单元&#xff0c;负责执行程序的指令序列。线程是操作系统能够进行调度和执行的最小单位。…...

信息熵 条件熵 交叉熵 联合熵 相对熵(KL散度) 互信息(信息增益)

粗略版快速总结 条件熵 H ( Q ∣ P ) 联合熵 H ( P , Q ) − H ( P ) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 信息增益 I ( P , Q ) H ( P ) − H ( P ∣ Q ) H ( P ) H ( Q ) − H ( P , Q ) 信息增益 I(P,Q)H(P)−H(P∣Q)H(P)H(Q)-H(P,Q) 信息…...

Fiddler Response私人订制

在客户端接口的测试中&#xff0c;我们经常会需要模拟各种返回状态或者特定的返回值&#xff0c;常见的是用Fiddler模拟各种请求返回值场景&#xff0c;如重定向AutoResponder、请求拦截修改再下发等等。小编在近期的测试中遇到的一些特殊的请求返回模拟的测试场景&#xff0c;…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...