C语言第20天笔记

文件操作

概述

什么是 文件

文件时保存在外存储器上(一般代指磁盘,也可以是U盘、移动硬盘等)的数据的集合。

文件操作体现在哪几个方面

1. 文件内容的读取

2. 文件内容的写入

数据的读取和写入可被视为针对文件进行输入和输出的操作,此时数据就像水流一样从外存 储器流向内存,或者从内存流向外存储器,所以系统形象的称文件操作为文件流。

C语言程序对文件的操作采用“文件缓冲机制”。就是说在程序中对文件的数据读写并不是直接 操作文件中的数据,而是系统会为文件在内存中创建“文件缓冲区”,程序对文件的操作,其实是在 缓冲区进行的。

文件的分类

根据数据的存储方式划分:

1. 文本文件(ASCII文件)

2. 二进制文件

文件标识

1. 文件系统中:路径+文件名,举例: d:/aaa/bbb.txt

2. C语言程序中:文件指针(文件类型指针),语法: FILE *指针变量名

文件操作的步骤:

1. 打开文件

2. 文件处理(读写文件)

3. 关闭文件 文件的操作 打开文件,让系统为文件创建文件缓冲区;

函数名:fopen

头文件: #include

函数原型: FILE* fopen(const char *path,const char *mode);

函数功能:打开文件,并为文件创建缓冲区

函数参数: path:目标文件的路径

mode:文件打开的方式(读-r、写-w、读写-rw)

返回值:

成功:返回文件指针 File* (缓冲区首地址)

失败:返回NULL 文件关闭,文件使用完毕,一定要记得释放

函数名:fclose

头文件: #include

函数原型: int fclose(FILE* fp);

函数功能:关闭文件,释放缓冲区

函数参数: fp:已经打开的文件指针

返回值:

成功:返回0

失败:返回EOF(-1)

文件打开与关闭案例

/**
* 文件的打开与关闭
*/
#include <stdio.h>
int main(int argc,char** argv)
{
// 在命令行执行./a.out的时候,传递一个需要打开的目标文件的地址
if(argc < 2)
{
printf("输入有误,请按照<%s 文件路径>格式输入\n",argv[0]);
return -1;
}
// 根据提供的文件路径,打开文件,mode(r,w,rw)
FILE* fp = fopen(argv[1],"r");
// 校验文件是否读取成功
if(!fp)
{
perror("文件打开失败!");
return -1;
}
puts("文件打开成功!");
// 关闭打开的文件
int ret = fclose(fp);
// 校验文件是否关闭成功(很多时候这一步会省略掉)
if(ret == -1)
{
perror("文件关闭失败!");
return -1;
}
puts("文件关闭成功!");
return 0;
}

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

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

相关文章

pytorch实现单层线性回归模型

文章目录 简述代码重构要点 数学模型、运行结果数据构建与分批模型封装运行测试 简述 python使用 数值微分法 求梯度&#xff0c;实现单层线性回归-CSDN博客 python使用 计算图&#xff08;forward与backward&#xff09; 求梯度&#xff0c;实现单层线性回归-CSDN博客 数值微分…

24/8/17算法笔记 策略梯度reinforce算法

import gym from matplotlib import pyplot as plt %matplotlib inline#创建环境 env gym.make(CartPole-v0) env.reset()#打印游戏 def show():plt.imshow(env.render(mode rgb_array))plt.show() show()定义网络模型 import torch #定义模型 model torch.nn.Sequential(t…

希亦、洁盟、苏泊尔眼镜清洗机哪款好用?热门眼镜清洗机测评总结

随着科学技术的发展&#xff0c;电子设备的升级&#xff0c;越来越多的人开始戴眼镜&#xff0c;而眼镜由于长时间的佩戴&#xff0c;镜框以及镜面都积累了一些灰尘以及人们肉眼所看不见的细菌&#xff0c;但是如果你使用普通的清洁方式去清洗的话肯定是清洗不干净的&#xff0…

【protobuf】ProtoBuf——proto3语法详解、字段规则、消息类型的定义与使用、通讯录的写入和读取功能实现

文章目录 ProtoBuf5. proto3语法详解5.1 字段规则5.2 消息类型的定义与使用 ProtoBuf 5. proto3语法详解 在语法详解部分&#xff0c;依旧通过项目推进的方式开展教学。此部分会对通讯录多次升级&#xff0c;用 2.x 表示升级的版本&#xff0c;最终将完成以下内容的升级&#x…

海康VisionMaster使用学习笔记4-快速匹配模块

快速匹配模块 快速匹配包括基本参数,特征模板,运行参数,结果显示 基本参数 可以修改图像源和模块的ROI区域. 特征模版 可以配置管理所有的模版,点击创建可以新增模版,也可以通过载入加载本地的模型 建立新模版 点击创建,可以选择当前图像或本地图像进行建模 模版存图按…

使用docker compose一键部署 Portainer

使用docker compose一键部署 Portainer Portainer 是一款轻量级的应用&#xff0c;它提供了图形化界面&#xff0c;用于方便地管理Docker环境&#xff0c;包括单机环境和集群环境。 1、创建安装目录 mkdir /data/partainer/ -p && cd /data/partainer2、创建docker…

uni-app 使用九宫格(uni-grid)布局组件

1、运行环境 开发工具为 HBuilder X 4.23, 操作系统为 Windows 11。Vue.js 版本为 3. 2、操作步骤 首先&#xff0c;登录 HBuilder X。然后用桌面浏览器&#xff0c;访问官网组件网址。 https://ext.dcloud.net.cn/plugin?nameuni-grid 在组件网址右上角、点击“下载插…

每日一题-贪心算法

122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 55. 跳跃游戏 - 力扣&#xff08;LeetCode&#xff09; 这个题目一开始肯定是会懵&#xff0c;就比如说一开始先跳几步&#xff0c;之后再怎么跳&#xff0c;其实我们就可以用最大范围来算就行了&#xff0…

开发笔记:uniapp+vue+微信小程序 picker +后端 省市区三级联动

写在前面 未采用: 前端放置js 或者 json文件进行 省市区三级联动 采用&#xff1a; 前端组件 后端接口实现三级联动 原因&#xff1a;首先微信小程序有大小限制&#xff0c;能省则省&#xff0c;其次&#xff1a;方便后台维护省市区数据&#xff0c;完整省市区每年更新好像…

SQL基础教程(八)SQL高级处理

※食用指南&#xff1a;文章内容为《SQL基础教程》系列学习笔记&#xff0c;该书对新手入门非常友好&#xff0c;循序渐进&#xff0c;浅显易懂&#xff0c;本人主要用来补全学习MySQL中未涉及的部分&#xff0c;便于刷题和做项目。 官方电子书&#xff1a;《SQL基础教程》第2…

Web安全:SqlMap工具

一、简介 sqlmap 是一款开源的渗透测试工具&#xff0c;可以自动化进行SQL注入的检测、利用&#xff0c;并能接管数据库服务器。它具有功能强大的检测引擎,为渗透测试人员提供了许多专业的功能并且可以进行组合&#xff0c;其中包括数据库指纹识别、数据读取和访问底层文件系统…

柔性超级电容器咋储能?生物聚合物在其中起啥作用?有啥挑战?

*本文只作阅读笔记分享* 一、引言 随着对化石燃料影响的日益关注&#xff0c;开发用于先进电化学能量存储设备的绿色和可再生材料变得至关重要。超级电容器因其出色的寿命、安全性和宽温度操作范围等优势而成为有前途的储能候选者。柔性超级电容器特别适合为轻质可穿戴电子设…

我常用的几个傻瓜式爬虫工具,收藏!

爬虫类工具主要两种&#xff0c;一种是编程语言第三方库&#xff0c;比如Python的scrapy、selenium等&#xff0c;需要有一定的代码基础&#xff0c;一种是图形化的web或桌面应用&#xff0c;比如Web Scraper、后羿采集器、八爪鱼采集器、WebHarvy等&#xff0c;接近于傻瓜式操…

qt生成一幅纯马赛克图像

由于项目需要&#xff0c;需生成一幅纯马赛克的图像作为背景&#xff0c;经过多次测试成功&#xff0c;记录下来。 方法一&#xff1a;未优化方法 1、代码&#xff1a; #include <QImage> #include <QDebug> #include <QElapsedTimer>QImage generateMosa…

MyBatis全解

目录 一&#xff0c; MyBatis 概述 1.1-介绍 MyBatis 的历史和发展 1.2-MyBatis 的特点和优势 1.3-MyBatis 与 JDBC 的对比 1.4-MyBatis 与其他 ORM 框架的对比 二&#xff0c; 快速入门 2.1-环境搭建 2.2-第一个 MyBatis 应用程序 2.3-配置文件详解 (mybatis-config.…

Pikachu-XSS漏洞之cookie值获取、钓鱼结果和键盘记录实战记录

目录 Pikachu-XSS漏洞之cookie值获取、钓鱼结果和键盘记录实战记录 一、XSS&#xff08;get型&#xff09;之cookie值获取&#xff1a; 二、xss&#xff08;post型&#xff09;之cookie值获取 三、Xss之钓鱼攻击 四、XSS获取键盘记 Pikachu-XSS漏洞之cookie值获取、钓鱼结果…

坐牢第二十七天(聊天室)

基于UDP的网络聊天室 一.项目需求&#xff1a; 1.如果有用户登录&#xff0c;其他用户可以收到这个人的登录信息 2.如果有人发送信息&#xff0c;其他用户可以收到这个人的群聊信息 3.如果有人下线&#xff0c;其他用户可以收到这个人的下线信息 4.服务器可以发送系统信息…

算法工程师第四十天(647. 回文子串 516.最长回文子序列 动态规划总结篇 )

参考文献 代码随想录 一、回文子串 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 示例 1&#xff1a; 输入&#xff1a;s "abc"…

【stm32项目】多功能智能家居室内灯光控制系统设计与实现(完整工程资料源码)

多功能智能家居室内灯光控制系统设计与实现 目录&#xff1a; 目录&#xff1a; 前言&#xff1a; 一、项目背景与目标 二、国内外研究现状&#xff1a; 2.1 国内研究现状&#xff1a; 2.2 国外研究现状&#xff1a; 2.3 发展趋势 三、硬件电路设计 3.1 总体概述 3.2 硬件连接总…

图像压缩算法

8.1 JPEG压缩 (JPEG Compression) 介绍 JPEG&#xff08;Joint Photographic Experts Group&#xff09;压缩是最常用的有损图像压缩算法之一。它通过减少图像中的冗余数据来实现高效压缩&#xff0c;特别适用于自然图像。 原理 JPEG压缩的基本步骤包括颜色空间转换、离散余…