顺序读写函数的介绍:fscanf fprintf

目录

函数介绍:

fprintf:

将结构体变量s的成员列表内容写入文件中:

文件效果:已经进行了格式化,3.140000是最明显的效果,因为float需要补齐0来补充精度

和printf的对比:

 不同之处: 

和printf的效果对比:

屏幕效果一样:

 fscanf:

从文件中读取数据,并将数据依次按照格式化分配到构体成员中,并使用printf打印:

文件内容:

代码操作: 

读取文件效果后的打印效果:从文件中读取了数据内容并且进行了printf打印

注意:

打印效果: 

和scanf的对比:

不同之处: 

和scanf对比效果: 

 小总结:

附赠内容:

 sscanf & sprintf:

sprintf:

 结果展示:

 内部展示:

sscanf:

 结果:


函数介绍:

fprintf:

将结构体变量s的成员列表内容写入文件中:

struct S
{int n;float f;char arr[20];
}int main()
{struct S s = {100,3.14f,"zhangsan"};FILE* pf = fopen("data.txt","w");if (pf == NULL){   perror("fopen");return 1;}fprintf(pf,"%d %f %s", s .n , s .f , s.arr) ;return 0;
}

文件效果:已经进行了格式化,3.140000是最明显的效果,因为float需要补齐0来补充精度

和printf的对比:

 不同之处: 
  • printf从标准流中输出数据,比如在屏幕中写入数据内容。
  • fprintf从指定流中输出数据,比如在指定的文件中写入数据内容。

和printf的效果对比:

printf("%d %f %s", s .n , s .f , s.arr) ;

写入结构体变量中的成员内容。 

fprintf(stdout,"%d %f %s", s .n , s .f , s.arr) ;

将结构体变量中的成员内容写入屏幕中。 

屏幕效果一样:

 fscanf:

从文件中读取数据,并将数据依次按照格式化分配到构体成员中,并使用printf打印:

文件内容:

代码操作: 
struct s
{ int n;float f;char arr[20];
}int main()
{struct S s = {0}:FILE* pf = fopen("data.txt","r");if (pf == NULL){perror("fopen");return 1;}fscanf(pf."%d %f %s",&(s .n).&(s.f),s.arr);printf("%d %f %s",&(s .n).&(s.f),s.arr)return 0;
}
读取文件效果后的打印效果:从文件中读取了数据内容并且进行了printf打印
注意:

这里的结构体变量s一开始进行了初始化为0,所以单纯使用printf是打印不出来数据的,所以这里printf打印的数据是fscanf读取而来的,而printf打印了fscanf读取的内容。

打印效果: 

和scanf的对比:

不同之处: 
  • fscanf是从指定流中拿取数据,比如只读取文件中的内容。
  • scanf是从标准流中拿取数据,比如可以从键盘中或者其他变量中拿取数据。

和scanf对比效果: 

scanf("%d %f %s", &(s .n), &(s .f), s .arr);
fscanf(pf."%d %f %s",&(s .n), &(s.f),s.arr);

 小总结:

 

附赠内容:

 

 sscanf & sprintf:

sprintf:

把格式化的数据变成字符串。

sprintf(存放字符串的空间起始地址,格式化的格式,需要变成字符的数据变量)

将结构体变量s的成员进行赋值,而后又创建一个数组空间,将结构体变量的成员使用sprintf将成员变量变成一个字符串。

 结果展示:

 内部展示:

 已经变成字符串了。

sscanf:

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

sscanf(存放字符串的空间起始地址,格式化的格式,需要格式化的数据地址)

在之前sprintf的代码基础上,在设立一个结构体,将原先已经变成字符串的数据,从arr这个数组空间中拿出,并以此放入结构体变量t的成员中,进行格式化数据,最后进行打印。

 结果:

  • 前者是结构体变量s的成员被sprintf变成字符串后,放在arr数组空间的内部。
  • 后者是arr中的字符串被sscanf从数组空间中拿出,重新变成格式化数据的结构体变量t的成员。 

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

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

相关文章

苹果电脑专业的条形码工具iBarcoder:助力高效条形码生成,提升工作效率

iBarcoder for mac是Mac os平台上的一款优秀条码生成软件。它可以帮助用户建立不同类型的条形码,并允许用户设计并打印自己的条码标签,创建条码图形的零售包装、书籍、贴纸等。 在iBarcoder中,用户可以方便地创建专业的条形码标签&#xff0…

Java8实战-总结34

Java8实战-总结34 重构、测试和调试使用 Lambda 重构面向对象的设计模式观察者模式责任链模式 重构、测试和调试 使用 Lambda 重构面向对象的设计模式 观察者模式 观察者模式是一种比较常见的方案,某些事件发生时(比如状态转变)&#xff0…

【excel密码】如何给excel设置带有密码的只读模式

大家提起只读模式,应该都不会联想到密码,想起excel密码可能会想到打开密码或者工作表保护。今天给大家分享如何设置带有密码的只读模式。 打开excel文件,将文件进行【另存为】设置,然后停留在保存路径的界面中,我们点…

笔记2.2:网络应用基本原理

一. 网络应用的体系结构 (1)客户机/服务器结构(Client-Server, C/S) (2)点对点结构(Peer-to-Peer,P2P) (3)混合结构(Hybrid&#x…

js制作柱状图的x轴时间, 分别展示 月/周/日 的数据

背景 有个需求是要做一个柱状图, x 轴是时间, y 轴是数量. 其中 x 轴的时间有三种查看方式: 月份/周/日, 也就是分别查看从当前日期开始倒推的最近每月/每周/每日的数量. 本篇文章主要是用来制作三种不同的 x 轴 从当前月开始倒推月份 注意 getMonth() 函数可以获取当前月份…

【数学建模】2023华为杯研究生数学建模F题思路详解

强对流降水临近预报 我国地域辽阔,自然条件复杂,因此灾害性天气种类繁多,地区差异大。其中,雷雨大风、冰雹、龙卷、短时强降水等强对流天气是造成经济损失、危害生命安全最严重的一类灾害性天气[1]。以2022年为例,我国…

基于C++实现的3D野外赛车驾驶游戏源码+项目文档+汇报PPT

项目介绍:本项目实现了一个户外场景下的赛车游戏,可以通过键盘控制赛车的移动,视角为第二人称视角。场景中有汽车,建筑,道路,天空等物体,拥有光照和阴影的效果。通过粒子系统模拟尾气效果&#…

Spring Boot与Spring Security的跨域解决方案

目录 一、什么是跨域问题 二、Spring Boot和Spring Security介绍 三、如何解决Spring Boot与Spring Security的跨域问题 一、什么是跨域问题 跨域问题(Cross-Origin Resource Sharing,简称CORS)是指在Web开发中,浏览器出于安全…

vue+express、gitee pm2部署轻量服务器

一、代码配置 前后端接口都保持 127.0.0.1:3000 vue创建文件 pm2.config.cjs module.exports = {apps: [{name: xin-web, // 应用程序的名称script: npm, // 启动脚本args: run dev, // 启动脚本的参数cwd: /home/vue/xin_web, // Vite 项目的根目录interpreter: none, // 告…

[动物文学]走红年轻人化身“精神动物”,这届年轻人不想做人了

数据洞察流行趋势,敏锐把握流量风口。本期千瓜与您分享近期小红书八大热点内容,带您看热点、追热门、借热势,为您提供小红书营销布局风向标。 「动物文学」走红 年轻人化身“精神动物” 其实,这届年轻人“不想做人”很久了………

Kubernetes组件和架构简介

目录 一.概念简介 1.含义: 2.主要功能: 3.相关概念: 二.组件和架构介绍 1.master:集群的控制平面,管理集群 2.node:集群的数据平面,为容器提供工作环境 3.kubernetes简单架构图解 一.概…

使用vue-cli脚手架工具搭建vue工程项目以及配置路由

vue-cli是用node编写的命令行工具,我们需要进行全局安装。打开命令行终端,输入如下命令: 1 $ npm install -g vue-cli 这里使用的是npm,为了开发的便利,推荐安装cnpm,这样运行指令会更迅速,安…

描述符——设备描述符

文章目录 描述符定义描述符实现描述符含义 描述符定义 描述符实现 /*** brief Device descriptor.*/ typedef struct __attribute__ ((packed)) {uint8_t bLength ; /**< Size of this descriptor in bytes. */uint8_t bDescriptorType ; /**< DEVICE D…

基于springboot+vue的大学生创新创业系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

Vue组件库Element

目录 Vue组件库ElementElement简介Element快速入门环境配置Element常用组件Table表格Table表格演示Table表格属性详解 Pagination分页Pagination分页演示Pagination分页属性详解Pagination分页事件详解 Dialog对话框Dialog对话框组件演示Dialog对话框属性详解 Form表单Form表单…

Chatbot UI集成LocalAI实现自托管的ChatGPT

本文比惯例提前了一天发&#xff0c;因为明天一早&#xff0c;老苏就踏上回乡的路了&#xff0c;三年没回老家&#xff0c;这次专门请了 2 天的假 难得回家&#xff0c;打算多陪陪家人&#xff0c;和多年不见的朋友聚聚&#xff0c;当然如果有网络条件&#xff0c;还是会正常发…

基于STM32的蔬菜大棚温湿度智能控制系统设计

一、前言 随着人们对健康和可持续生活方式的关注不断增加&#xff0c;蔬菜大棚成为了现代农业中的重要组成部分。蔬菜大棚提供了一个受控的环境&#xff0c;使得农民能够在任何季节种植蔬菜&#xff0c;并根据需要进行调节。为了实现最佳的蔬菜生长和产量&#xff0c;对温度和…

RedisTemplate出现\xac\xed\x00\x05t\x00\x0f前缀解决

问题描叙 出现这种乱码前缀的原因是没有进行序列化&#xff0c;因此导致在传输过程出现乱码问题&#xff0c;存到数据库&#xff0c;发现 key,hash key/value 都有 \xAC\xED\x00\x05t\x00 前缀。RedisTemplate类中默认是没有设置序列化的。 解决方法 设置RedisTemplate的序列…

微机原理与接口技术

一、微型计算机系统概述二、总线 总线(Bus)&#xff1a;是连接计算机各部件的一组公共信号线;总线上能同时传送二进制信息的位数称为总线宽度。 优点&#xff1a;大大减少传输线数目&#xff0c;结构简单&#xff0c;便于扩充 总线按传送信息分类:地址总线、数…

华为小型智能园区网络解决方案

云时代来袭&#xff0c;数字化正在从园区办公延伸到生产和运营的方方面面&#xff0c;智慧校园&#xff0c;柔性制造&#xff0c;掌上金融和电子政务等&#xff0c;面对各种各样的新兴业态的涌现&#xff0c;企业需要构建一张无所不联、随心体验、业务永续的全无线网络&#xf…