【C语言】文件操作(二)

在这里插入图片描述

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤
📃

目录

    • 📌补充
      • 1.sprintf
      • 2.sscanf
  • 🃏五、文件的随机读写
    • 1.fseek函数
    • 2.ftell函数
    • 3.rewind函数
  • 📮六、文本文件和二进制文件
    • 1.文本文件
    • 2.二进制文件
    • 3.查看二进制文件方式:
  • 📢七、文件读取结束的判定
  • 📢八、文件缓冲区

📌补充

1.sprintf

功能:把一个格式化数据(不是数据流)转化成字符串

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
struct S
{
	int a;
	float b;
};
int main()
{
	
	struct S s = { 1,2.22f };
	char a[20] = { 0 };
	sprintf(a, "%d %f", s.a, s.b);
	//sscsanf(s, "%d %f", &(s.a), &(s.b));
	//printf("%d %f", s.a, s.b);
	printf("%s", a);
	return 0;
}

在这里插入图片描述

2.sscanf

从字符串中读取格式化的数据

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
struct S
{
	int a;
	float b;
};
int main()
{
	
	struct S s = { 3,4.444};
	char a[20] = { 0 };
	struct S tmp = { 0 };
	sprintf(a, "%d %f", s.a, s.b);
	sscanf(a, "%d %f", &(tmp.a),&(tmp.b));
	printf("%d %f", s.a, s.b);
	//printf("%s", a);
	return 0;
}

将字符数组a中的数据转化成结构体。
在这里插入图片描述

🃏五、文件的随机读写

1.fseek函数

int fseek ( FILE * stream, long int offset, int origin );

功能:根据文件指针的位置和偏移量来定位文件指针
默认是从文件第一个位置开始。

2.ftell函数

long int ftell ( FILE * stream );

功能;返回文件指针相对于起始位置的偏移量

3.rewind函数

void rewind ( FILE * stream );

功能:让文件指针的位置回到文件的起始位置

📮六、文本文件和二进制文件

1.文本文件

如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文 本文件。

2.二进制文件

数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件。

3.查看二进制文件方式:

1.先添加文件到源文件
在这里插入图片描述
2.右击打开方式
在这里插入图片描述
3.选择二进制编辑器
在这里插入图片描述
在这里插入图片描述
由于vs2019是小端存储,所以结果为10 27 00 00 .

📢七、文件读取结束的判定

在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束。
feof函数应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束。

  1. 文本文件读取是否结束,判断返回值是否为 EOF ( fgetc ),或者 NULL ( fgets ) 例如: fgetc 判断是否为 EOF . fgets 判断返回值是否为 NULL .>
  2. 二进制文件的读取结束判断,判断返回值是否小于实际要读的个数。 例如: fread 判断返回值 是否小于实际要读的个数 。

📢八、文件缓冲区

  • ANSIC 标准采用 “ 缓冲文件系统 ” 处理的数据文件的,所谓缓冲文件系统是指系统自动地在内存中为程序中每一个正在使用的文件开辟一块 文件缓冲区

  • 从内存向磁盘输出数据会先送到内存中的缓冲区, 装满
    缓冲区后才一起送到磁盘上。如果从磁盘向计算机读入数据,则从磁盘文件中读取数据输入到内存缓冲区( 充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。

  • 缓冲区的大小根据C 编译系统决定的。

在这里插入图片描述
各位看官老爷,咱下回再见!
别忘了点赞关注加评论哟
💙 💜 ❤️ 💚 💔 💓 💗 💕 💞 💘 💖 ✨ ⭐️ 🌟

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android NDK工具使用

快速定位到NDK安装目录 打开你的 .bash_profile vim &#xff5e;/.bash_profile 设置ndk的环境变量 ANDROID_HOME"/Users/xxxx/Library/Android/sdk" export NDK${PATH}:${ANDROID_HOME}/ndk/21.3.6528147 //这个就是你的快捷指令 alias ndkalias ndk${ANDROID_…

安装支持vs2019的MFC(解决MSBuild 错误 MSB8041、MSB8042)

安装支持MFC的vs2019&#xff08;解决MSBuild 错误 MSB8041、MSB8042&#xff09; 常用安装选项解决MSBuild 错误 常用安装选项 解决MSBuild 错误 安装上述勾选内容后&#xff0c;即可解决MSBuild 错误 MSB8041 MSB8041&#xff1a;此项目需要 MFC/ATL 库。 https://learn.mic…

力扣算法 704 35 34 69 367二分查找

704.二分查找 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 二分查找法 class Solution { public:int search(vecto…

Langchain 和 Chroma 的集成

Langchain 和 Chroma 的集成 1. Chroma2. 基本示例​3. 基本示例(包括保存到磁盘)4. 将 Chroma Client 传递到 Langchain ​5. 基本示例(使用 Docker 容器)6. 更新和删除7. 带分数的相似性搜索​ 1. Chroma Chroma 是一个人工智能原生开源矢量数据库&#xff0c;专注于开发人员…

Linux Ubuntu crontab 添加错误 提示:no crontab for root - using an empty one 888

资料 错误提示&#xff1a; no crontab for root - using an empty one 888 原因剖析&#xff1a; 第一次使用crontab -e 命令时会让我们选择编辑器&#xff0c;很多人会不小心选择默认的nano&#xff08;不好用&#xff09;&#xff0c;或则提示no crontab for root - usin…

数据库对象

二十、数据库对象-视图 二十一、数据库对象-索引 age字段没有索引&#xff0c;查找需要扫描全表&#xff1a; name字段做了唯一索引&#xff0c;查找一次&#xff1a; 二十二、数据库对象-事务 事务的隔离级别和问题&#xff1a;

HTML渐变效果:线性渐变与径向渐变详解

简介 在HTML中,你可以使用CSS来创建渐变效果,给元素添加丰富的背景样式。本文将详细介绍HTML中的渐变效果,并提供示例代码帮助你理解和应用。 线性渐变(Linear Gradient) 线性渐变通过沿一条直线给元素应用颜色的渐变效果。你可以定义起始点和结束点之间的颜色过渡方式。…

深度学习-第R1周心脏病预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 我的环境&#xff1a; 语言环境&#xff1a;Python3.10.7编译器&#xff1a;VScode深度学习环境&#xff1a;TensorFlow 2.13.0 一、前期工作&#xff1a; …

【沁恒蓝牙mesh】数据收发接口与应用层模型传递

本文主要描述了沁恒蓝牙mesh SDK的蓝牙数据收发接口&#xff0c;以及应用层的回调函数解析以及模型传递 这里写目录标题 1. 数据收发接口1.1【发送数据】1.2 【数据接收】 2. 应用层模型分析 1. 数据收发接口 1.1【发送数据】 /*&#xff08;1&#xff09;接口1 */ /*接口一&…

逻辑斯特回归

*分类是离散的&#xff0c;回归是连续的 下载数据集 trainTrue&#xff1a;下载训练集 逻辑斯蒂函数保证输出值在0-1之间 能够把实数值映射到0-1之间 导函数类似正态分布 其他饱和函数sigmoid functions 循环神经网络经常使用tanh函数 与线性回归区别 塞戈马无参数&#x…

光伏圈告别「看天吃饭」,塞浦路斯大学耗时 2 年,发现机器学习预测污染损失未来可期

内容一览&#xff1a;光伏系统是一种利用太阳能发电的可再生能源解决方案&#xff0c;具有减少温室气体排放、分散式发电、经济效益等优势&#xff0c;对于推动可持续能源发展和应对环境挑战具有重要作用。然而&#xff0c;许多具有最高太阳辐射的地点也存在地面干燥、多尘的缺…

PHP反序列化漏洞之魔术方法

一、魔术方法 PHP魔术方法&#xff08;Magic Methods&#xff09;是一组特殊的方法&#xff0c;它们在特定的情况下会被自动调用&#xff0c;用于实现对象的特殊行为或提供额外功能。这些方法的名称都以双下划线开头和结尾&#xff0c;例如: __construct()、__toString()等。 …

jenkins中配置了发送邮件,构建后却没有发邮件Not sent to the following valid addresse

【问题描述】&#xff1a;jekins中配置了发送邮件&#xff0c;构建后却没有发邮件的问题&#xff0c;构建报错&#xff1a;Not sent to the following valid addresse 【报错显示】&#xff1a; 【问题定位】&#xff1a;Extended E-mail Notification中&#xff0c;没有配置…

工具推荐:Linux Busybox

文章首发地址 BusyBox是一个开源的、轻量级的、可嵌入式的、多个Unix工具的集合。BusyBox提供了各种Unix工具的实现&#xff0c;包括文件处理工具、网络工具、shell工具、系统管理工具、进程管理工具等等。它被设计为一个小巧、高效、可靠、易于维护的工具&#xff0c;适用于嵌…

Folx Pro 5 最好用的Mac磁力链接BT种子下载工具

除了迅雷&#xff0c;还有哪个支持磁力链接下载&#xff1f;Mac电脑如何下载磁力链接&#xff1f;经常有小伙伴问老宅。今天&#xff0c;老宅给大家推荐Folx Pro For Mac&#xff0c;Mac系统超好用的磁力下载工具。 Folx是一款功能强大且易于使用的Mac下载管理器&#xff0c;并…

MySQL基础扎实——主键与候选键

词义解释 主键&#xff08;Primary Key&#xff09;和候选键&#xff08;Candidate Key&#xff09;是关系型数据库中的术语&#xff0c;用于标识和唯一确定表中的记录。它们之间有以下区别&#xff1a; 唯一性&#xff1a;主键是表中的唯一标识&#xff0c;每个表只能有一个主…

docker 的compose安装

1. Docker Compose 环境安装 Docker Compose 是 Docker 的独立产品&#xff0c;因此需要安装 Docker 之后在单独安装 Docker Compose 下载 curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker…

uniapp JS文件里面调用自定义组件(不用每个页面在template中加组件标签)

前言 工具&#xff1a;uniapp 开发端&#xff1a;微信小程序 其他&#xff1a;uview 2.0 场景&#xff1a;路由器里面&#xff0c;统一验证是否已登录&#xff0c;如果没登录&#xff0c;则直接弹出登录弹窗出来&#xff0c;不管哪个页面都如此。 效果如下&#xff1a; 直接上…

gin 中间件流程控制:Next()、 Abort()

gin 中间件流程控制 Next() 源码注释&#xff1a;Next应该只在中间件内部使用。它执行调用处理程序内部链中的挂起处理程序。 通俗的说&#xff0c;就是中间件放行&#xff0c;当一个中间件代码执行到Next()&#xff0c;会先执行它之后的函数&#xff0c;最后再来执行完本函…

Excel双向柱状图的绘制

Excel双向柱状图在绘制增减比较的时候经常用到&#xff0c;叫法繁多&#xff0c;双向柱状图、上下柱状图、增减柱状图都有。 这里主要介绍一下Excel的基础绘制方法和复杂一点的双向柱状图的绘制 基础双向柱状图的绘制 首先升降的数据如下&#xff1a; 月份上升下降20220359-…