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

news2024/11/25 14:41:59

目录

函数介绍:

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.coloradmin.cn/o/1040493.html

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

相关文章

基础排序算法

插入排序(insertion sort) 插入排序每次循环将一个元素放置在适当的位置。像抓牌一样。手里的排是有序的,新拿一张牌,与手里的牌进行比较将其放在合适的位置。 插入排序要将待排序的数据分成两部分,一部分有序&#…

ddd扬帆

简介 读取了一篇“产品代码都给你看了,可别再说不会DDD”较为清晰了解了:领域驱动设计,整洁架构和事件驱动架构的架构思想落地实践,特做记录读后感,可以直接跳到正文阅读原文 正文 以下正文... 构建自己的软件大厦 …

【C++】C++11——可变参数模板和emplace

可变参数模板的定义方式可变参数模板的传值计算可变参数模板参数个数参数包展开方式递归展开参数包逗号表达式展开参数包 emplace插入 可变参数模板是C11新增的最强大的特性之一,它对参数高度泛化,能够让我们创建可以接受可变参数的函数模板和类模板。 在…

(a)Spring注解式开发,注册组件的@Repository,@Service,@Controller,@Component使用及说明

注解扫描原理 通过反射机制获取注解 Target(value {ElementType.TYPE})// 设置Component注解可以出现的位置,以上代表表示Component注解只能用在类和接口上 Retention(value RetentionPolicy.RUNTIME)// 设置Component注解的保持性策略,以上代表Comp…

社区团购美团和多多买菜小程序购物车

概述 微信小程序购物车列表demo 详细 需求 显示食物名称、价格、数量。 点击相应商品增加按钮,购买数量增加1,点击食物减少按钮,购买数量减一 显示购买总数和总金额 查看当前购买的商品 效果图(数据来自本地模拟) 目录结构 实现过程 主要wxml <view classfoods>…

工具篇 | H2数据库的使用和入门

引言 1.1 H2数据库概述 1.1.1 定义和特点 H2数据库是一款以 Java编写的轻量级关系型数据库。由于其小巧、灵活并且易于集成&#xff0c;H2经常被用作开发和测试环境中的便利数据库解决方案。除此之外&#xff0c;H2也适合作为生产环境中的嵌入式数据库。它不仅支持标准的SQL…

饮料生产线Modbus协议转换网关的应用介绍

在饮料生产线设备数据采集和控制系统中&#xff0c;MODBUS网关是一种非常重要的设备。它可以将不同设备之间的通讯协议转换为统一的MODBUS协议&#xff0c;从而实现数据采集和指令下达。在本文中&#xff0c;我们将介绍如何使用MODBUS网关采集饮料生产线设备数据并下达指令。 在…

知识库搭建保姆级教程,如何从0到1完成知识库搭建

在这个信息爆炸的时代&#xff0c;如何获取、整理和应用知识成为了我们个体价值和企业核心竞争力打造的重要表现&#xff0c;搭建一个高效的知识库可以提升我们企业的竞争力&#xff0c;必要时还能快速切换赛道&#xff0c;开展一个新的领域。 今天我们将结合HelpLook 来与你一…

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

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

Kubernetes组件和架构简介

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

Windows迁移文件的快速方法

文章目录 1.简单比较2.传输方法介绍&#xff1a;有线&#xff08;直连网络&#xff09;3.传输方法介绍&#xff1a;无线热点传输4. 共享文件夹的设置5.挂载共享文件夹 1.简单比较 方法传输速度有线传输接近900Mb无线热点传输接近500MbU盘传输基本上不超过100Mb 2.传输方法介绍…

小程序-uniapp:URL Link / 适用于在移动端 从短信、邮件、微信外网页 等场景打开小程序任意页面

一、背景介绍 小程序URL Scheme、URL Link是微信小程序后台生成的一种地址&#xff0c;适用于从短信、邮件、微信外网页 等场景打开小程序任意页面。所以&#xff0c;适用性极强。可与微信扫码携带参数跳转到小程序指定页面技术互补 若在微信外打开&#xff0c;用户可以在浏览…

【C++】C++ 类中的 this 指针用法 ③ ( 全局函数 与 成员函数 相互转化 | 有参构造函数设置默认参数值 | 返回匿名对象与返回引用 )

文章目录 一、全局函数 与 成员函数 相互转化1、成员函数转为全局函数 - 多了一个参数2、全局函数转为成员函数 - 通过 this 指针隐藏操作数 二、有参构造函数设置默认参数值三、返回匿名对象与返回引用四、完整代码示例 一、全局函数 与 成员函数 相互转化 1、成员函数转为全局…

2023-Chrome插件推荐

Chrome插件推荐 一键管理扩展 链接 https://chromewebstore.google.com/detail/lboblnfejcmcaplhnbkkfcienhlhpnni 介绍 一键开启、禁用Chrome插件。 Checker Plus for Gmail™ 链接 https://jasonsavard.com/zh-CN/Checker-Plus-for-Gmail https://chromewebstore.goo…

ElementUI之首页导航与左侧菜单

目录 一、Mock 1.1 什么是Mock.js 1.2 安装与配置 1.2.1 安装mock.js 1.2.2 引入mock.js 1.3 mock.js使用 1.3.1 定义测试数据文件 1.3.2 mock拦截Ajax请求 1.3.3 界面代码优化 二、总线 2.1 定义 2.2 类型分类 2.3 前期准备 2.4 配置组件与路由关系 2.4.1 配置…

计算机毕业设计 基于微信小程序的校园商铺系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

2023 “华为杯” 中国研究生数学建模竞赛(A题)深度剖析|数学建模完整代码+建模过程全解全析

华为杯数学建模A题 当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2021年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 让我们一起看看研赛的A题呀&#xff01; …

络安全开发和音视频开发哪个方向更有前景?

网络安全开发和音视频开发哪个方向更有前景&#xff1f; 随着互联网和移动互联网的飞速发展&#xff0c;音视频应用已经成为人们日常生活和工作中不可或缺的一部分。 从视频会议、在线教育、直播、短视频到游戏&#xff0c;音视频技术的应用场景越来越广泛&#xff0c;市场需求…

面试必杀技:Jmeter性能测试攻略大全(第二弹)

1. JMeter介绍与安装 JMeter介绍 JMeter是Apache组织开发的基于Java的压力测试工具。具有开源免费、框架灵活、多平台支持等优势。除了压力测试外&#xff0c;JMeter也可以应用的接口测试上。JMeter下载、安装及启动 下载&#xff1a; 访问JMeter官网&#xff1a;https://j…

机器学习——seaborn实用画图方法简介

0、seaborn简介: 前言:下面的总结只是介绍seaborn有哪些方法和属性,至于具体使用,通过下面给出的名称稍作查找即可。重点应该关注本文介绍的seaborn的使用方法seaborn与机器学习的关系: 知识图谱 0.1、了解即可的知识: seaborn:在matplotlib的基础上画一些更好看的图,在…