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

news2024/11/18 13:51:59

在这里插入图片描述

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

目录

    • 📌补充
      • 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 编译系统决定的。

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

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

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

相关文章

hive 全量表、增量表、快照表、切片表和拉链表

全量表&#xff1a;记录每天的所有的最新状态的数据&#xff0c;增量表&#xff1a;记录每天的新增数据&#xff0c;增量数据是上次导出之后的新数据。快照表&#xff1a;按日分区&#xff0c;记录截止数据日期的全量数据切片表&#xff1a;切片表根据基础表&#xff0c;往往只…

如何利用tf.keras 实现深度学习?

tf.keras是TensorFlow 2.0的高阶API接口&#xff0c;为TensorFlow的代码提供了新的风格和设计模式&#xff0c;大大提升了TF代码的简洁性和复用性&#xff0c;官方也推荐使用tf.keras来进行模型设计和开发。 常用模块 tf.keras中常用模块如下表所示&#xff1a; 常用方法 深度…

智慧环保:创造绿色未来

随着全球环境问题的日益严重&#xff0c;智慧环保成为推动绿色发展的关键。智慧环保利用先进的技术手段和智能化设备&#xff0c;致力于解决环境问题&#xff0c;保护生态环境&#xff0c;实现可持续发展。它融合了物联网、人工智能、大数据等技术&#xff0c;将科技的力量与环…

C#实现计算题验证码

开发环境&#xff1a;C#&#xff0c;VS2019&#xff0c;.NET Core 3.1&#xff0c;ASP.NET Core API 1、建立一个验证码控制器 新建两个方法Create和Check&#xff0c;Create用于创建验证码&#xff0c;Check用于验证它是否有效。 声明一个静态类变量存放列表&#xff0c;列…

公众号运营:公众号互选广告操作流程指南

什么是公众号互选广告平台&#xff1f; 公众号互选平台&#xff0c;是广告主和流量主双向互选、自由达成内容合作的交易 平台&#xff0c;广告创意呈现在公众号文章内容中。 收入模式&#xff1a;按合作文章收费&#xff0c;合作价格由流量主自主决定。 操作配合&#xff1a;提…

1334179-85-9,BTTAA,是各种化学生物学实验中生物偶联所需

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ BTTAA试剂 | 基础知识概述&#xff08;部分&#xff09;: 中文名称&#xff1a;2-[4-({双[(1-叔丁基-1H-1,2,3-三唑-4-基)甲基]氨基}甲基)-1H-1,2,3-三唑-1-基]乙酸 英文名称&#xff1a;BTTAA CAS号&#xff1a;1334179-8…

Vue2 第一节 通用概念和前置知识

本篇将记录自己学习Vue的知识点总结 学习资源&#xff1a; B站 &#xff1a;尚硅谷Vue2.0Vue3.0全套教程 有个博主将这个视频总结成了笔记&#xff0c;之后的博客也会参考这个笔记 (126条消息) 【2022.3】尚硅谷Vue.js从入门到精通基础笔记&#xff08;理论实操知识点速查&…

Android 之 Paint API —— PathEffect (路径效果)

本节引言&#xff1a; 本节继续来学习Paint的API——PathEffect(路径效果)&#xff0c;我们把画笔的sytle设置为Stroke&#xff0c;可以 绘制一个个由线构成的图形&#xff0c;而这些线偶尔会显得单调是吧&#xff0c;比如你想把这些先改成虚线&#xff0c;又 或者想让路径的转…

我们聊聊性能测试的理解误区

有同学私信我&#xff0c;和他聊了聊关于性能测试的一些话题&#xff0c;发现他对性能测试的理解走入了一些误区。 在一些技术交流群&#xff0c;同样遇到过很多同学由于对性能测试理解上的误区导致的各种问题&#xff0c;比如&#xff1a; 注册用户数并发数&#xff0c;然后服…

Top命令

Top top - 12:46:01 up 2 days, 11:10, 3 users, load average: 0.56, 0.59, 0.45系统基本信息&#xff1a;显示了系统运行时间、登录用户数和平均负载&#xff08;load average&#xff09;情况。平均负载是系统在特定时间范围内的平均活跃进程数&#xff0c;可以用来衡量系…

自动驾驶之轨迹规划8——Apollo参考线和轨迹

1. abstract 本文主要讲解routing和planning模块中的reference line&#xff0c;我之前一直搞不明白这个reference line是如何生成的&#xff0c;有什么作用&#xff0c;和routing以及planning的关系。现在有了一些心得打算梳理一下&#xff1a; 决策规划模块负责生成车辆的行…

Go基础—反射,性能和灵活性的双刃剑

Go基础—反射&#xff0c;性能和灵活性的双刃剑 1 简介2 结构体成员赋值对比3 结构体成员搜索并赋值对比4 调用函数对比5 基准测试结果对比 1 简介 现在的一些流行设计思想需要建立在反射基础上&#xff0c;如控制反转&#xff08;Inversion Of Control&#xff0c;IOC&#x…

7.27 Qt

制作简易小闹钟 Timer.pro QT core gui texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # dep…

替换字母题解

样例输入1&#xff1a; 5 4 abcab样例输出1&#xff1a; 1样例输入2&#xff1a; 5 3 abcab样例输出2&#xff1a; 2思路分析&#xff1a; 看到这种题&#xff0c;先想到 O ( 26 n ) O(26\times n) O(26n)的时间复杂度&#xff0c;枚举把字符串都变成每一个字母所需要的最…

ubuntu20.04 安装 docker engine

打开docker官网 点击上图中间的Linux&#xff0c;会是这样&#xff1a; 点击上图的左边栏的 Docker Engine,点击install, 点击 Ubuntu&#xff0c;会是这样&#xff1a; 把页面翻下来&#xff0c;先按照 Insstallation methods 中的 set up thre repository&#xff0c;执行这些…

平安私人银行受邀慈善服务高质量发展会议,分享慈善规划服务

近日&#xff0c;中华慈善总会家风传承与慈善信托委员会成立仪式&#xff0c;以及由中华慈善总会、中国银行业协会联合发起的“慈善顾问赋能计划”启动仪式在北京举行。平安私人银行受邀参会并分享慈善规划服务&#xff0c;平安私人银行慈善业务总监王英及平安私人银行客户、“…

[算法很美打卡] 多维数组篇 (打卡第二天)

文章目录 Z形打印边界为1的最大子方阵 Z形打印 package 每日算法学习打卡.算法打卡.七月份.七月二十七号;public class test1 {public static void main(String[] args) {int[][] matrix {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12},};print(matrix);}static void print(int[…

基于信用博弈的数据价格动态评估模型

纯纯的&#xff0c;共享出来了 目录 摘要 2 数据价格动态评估模型 2.1 数据产品定价策略 摘要 传统数据交易平台中&#xff0c;定价完全由平台把控&#xff0c;数据所有者不明确数据潜在价值&#xff0c;网络买卖双方信用缺失&#xff0c;导致数据交易中的数据价格难以评估…

HCIA实验二

实验要求&#xff1a; 1.R2为ISP&#xff0c;只能配置IP 2.R1-R2之间为HDLC封装 3.R2-R3之间为PPP封装&#xff0c;pap认证&#xff0c;R2为主认证方 4.R2-R4之间为PPP封装&#xff0c;chap认证&#xff0c;R2为主认证方 5.R1、R2、R3构建MGRE&#xff0c;仅R1的IP地址固定…

自动发推技巧解析:让你的推文营销更容易上热门

作为一家企业在推特上发帖的目的就是能让更多人看到&#xff0c;也就是被算法拾取&#xff0c;从而推荐给更多的人&#xff0c;那么就需要首先了解推特的算法是怎么样的&#xff0c;才能利用好它进行推特自动发推群发&#xff0c;这里推特群推王给大家剖析一二: 上热门指什么&a…