(C语言)sscanf 与 sprintf详解

news2024/10/7 6:47:37

目录

1.sprintf函数详解

2. sscanf函数详解


1.sprintf函数详解

头文件:stdio.h

作用:将格式化的数据写入字符串里,也就是将格式化的数据转变为字符串。

演示:

#include <stdio.h>
struct S
{
	char name[10];
	int height;
	float grate;
}s1 = { "xiaoming",80,65.5f };

int main()
{
	char arr[100] = { 0 };
	sprintf(arr, "%s %d %f", s1.name, s1.height, s1.grate);
	printf(arr);
	return 0;
}

sprintf将s1中的数据写入了字符串arr中,并打印出来。

2. sscanf函数详解

头文件:stdio.h

作用:将格式化的数据从字符串中读取出来,将字符串中的数据转变为我们能用的数据。

演示:

#include <stdio.h>
struct S
{
	char name[10];
	int height;
	float grate;
}s1 = { "xiaoming",80,65.5f },s2;

int main()
{
	char arr[100] = { 0 };
	sprintf(arr, "%s %d %f", s1.name, s1.height, s1.grate);
	sscanf(arr, "%s %d %f", s2.name, &(s2.height), &(s2.grate));

	printf("%s %d %f", s2.name, s2.height, s2.grate);
	return 0;
}

sscanf将我们写入字符串s1中的格式化数据再次格式化的读取出来,写入s2中,并打印出来,读取时别忘记取地址。

如果我们向s1写入格式化数据时没有在%s,%d,%f之间加空格,那么sscanf在读取时,他不知道我们以为的分隔线,所以会发生错误,我们来看一下。

#include <stdio.h>
struct S
{
	char name[10];
	int height;
	float grate;
}s1 = { "xiaoming",80,65.5f },s2;

int main()
{
	char arr[100] = { 0 };
	sprintf(arr, "%s%d%f", s1.name, s1.height, s1.grate);
	sscanf(arr, "%s %d %f", s2.name, &(s2.height), &(s2.grate));

	printf("%s %d %f", s2.name, s2.height, s2.grate);
	return 0;
}

打印s2结构体数据时就发生了错误,s2与s1中的元素中存的数据是不同的,因此使用sprintf时不要忘记两个元素之间加空格,方便我们之后再从字符串中读取数据。

感谢观看,欢迎在评论区讨论

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

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

相关文章

LeetCode---128双周赛

题目列表 3110. 字符串的分数 3111. 覆盖所有点的最少矩形数目 3112. 访问消失节点的最少时间 3113. 边界元素是最大值的子数组数目 一、字符串的分数 按照题目要求&#xff0c;直接模拟遍历即可&#xff0c;代码如下 class Solution { public:int scoreOfString(string …

如何通过通过钉钉发送信息????????

1、通过钉钉群添加一个机器人 2、代码实现 /*** 发钉钉审核.** param*/private void sendDingDing(String tableName) {String url "https://oapi.dingtalk.com/robot/send?access_token229c627d05a3157f79a5ef1942d29c4dfb4515bf5c0ad65e3c69423bc016f97c";JSONOb…

达梦数据库的AWR报告

达梦数据库的AWR报告 数据库快照是一个只读的静态的数据库。 DM 快照功能是基于数据库实现的&#xff0c;每个快照是基于数据库的只读镜像。通过检索快照&#xff0c;可以获取源数据库在快照创建时间点的相关数据信息。 为了方便管理自动工作集负载信息库 AWR&#xff08;Auto…

网络编程初步

协议&#xff1a; 一组规则 分层模型结构&#xff1a; OSI七层模型&#xff1a;物、数、网、传、会、表、应 TCP/IP 4层模型&#xff1a;网&#xff08;链路层/网络接口层)、网、传、应 应用层&#xff1a;http、 ftp、 nfs、 ssh、 telneto o .传输层:TCP、UDP 网络层&…

累加(C语言)

一、题目&#xff1b; 二、N-S流程图&#xff1b; 三、运行结果&#xff1b; 四、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int i 0;int j 0;int n 5;int result 0;int sum 0;//运算&#…

笔试强训未触及题目(个人向)

NC398 腐烂的苹果 1.题目 2.解析 这是一个广度优先搜索问题&#xff0c;我们可以先找到所有的烂苹果&#xff0c;把它加入到队列中&#xff0c;然后再同时让这几个苹果向外面腐蚀&#xff0c;我们可以用一个boolean数组来表示是否被腐蚀&#xff0c;也可以直接在原数组中将这…

ThingsBoard通过规则链创建报警信息

什么是规则引擎? 典型实例 1、复制根规则链为报警规则链路 2、拖动Script Filter 规则节点放入链中并配置如下脚本: 3、配置名称为&#xff1a;高温报警&#xff0c;并执行下面的脚本 4、将Script于上一个节点进行关联 5、选择动作里面的create alarm节点信息并放入其中…

解决微信打开文件编辑显示只读状态

微信官网下载地址&#xff1a;微信&#xff0c;是一个生活方式 新版本解决方案&#xff1a; 微信打开文件只读问题终于得到彻底解决了&#xff01;请尽快升级微信 Windows3.9.6 或者微信 mac3.8.1 版本&#xff0c;均新增聊天文件取消只读开关. 旧版本解决方案&#xff1a; …

【笔记】应对Chrome更新导致Chromedriver失效的解决方案:Chrome For Test

随着网络应用和网站的不断发展&#xff0c;自动化测试变得越来越重要&#xff0c;而Selenium成为了许多开发者和测试人员的首选工具之一。然而&#xff0c;对于使用Selenium来进行网站测试的人来说&#xff0c;Chrome浏览器的频繁更新可能会成为一个头疼的问题。每当Chrome更新…

如何在本地服务器部署TeslaMate

文章目录 1.主要参考官方文档2.准备文件&#xff1a;docker-compose.yml3.运行4.成功后4.1 在这个链接&#xff0c;更具提示登录4.2 在这个链接可以看到电池健康和行车数据等 5.后续说明6.进行数据备份6.1 先将数据进行备份&#xff0c;参考链接6.2 数据迁移6.3 下图为我挂该数…

洛谷P1057 [NOIP2008 普及组] 传球游戏

#include<iostream> using namespace std; int n;// n个人传球游戏 默认开始球在编号为1的位置 int m;// 传递m次球 int main(){cin>>n>>m;// 动态转方程&#xff1a;// 球传递到编号为k人的手中// 种类总数 传递到k-1编号种类总数 传递到k1编号种类总数//…

精通代码格式:如何有效管理Python代码行长度

文章目录 1. 问题描述2. 设置文本编辑器的规则2.1 PyCharm 设置2.2 Visual Studio Code 设置 今天写代码遇到一个滑稽的问题&#xff0c;python代码的换行也有规则&#xff0c;于是记录一下 1. 问题描述 在刷LeetCode验证二叉树的时候我写了如下代码&#xff1a; if (not hel…

二分答案复习

y总二分查找算法模板 int bsearch_1(int l, int r) {while (l < r){int mid l r >> 1;//性质在右边&#xff0c;区间划分成[l, mid]和[mid 1, r]if (check(mid)) r mid;else l mid 1;}return l; }int bsearch_2(int l, int r) {while (l < r){int mid l r …

【C++】哈希结构

目录 一&#xff0c;哈希结构的认识 1-1&#xff0c;哈希思想 1-2&#xff0c;哈希函数 1-3&#xff0c;哈希冲突 1-3-1&#xff0c;闭散列 1-3-2&#xff0c;开散列 二&#xff0c;哈希结构的封装实现 2-1&#xff0c;闭散列封装实现 ​编辑 2-2&#xff0c;开散列封…

Sy-linux下常用的网络命令linux network commands

linux下的网络命令非常强大&#xff0c;这里根据教材需要&#xff0c;列出来常用的网络命令和场景实例&#xff0c;供参考。 一、命令列表&#xff1a; Command Description ip Manipulating routing to assigning and configuring network parameters traceroute Identi…

分组查询得到一列多行数据后,怎么用来和表中的某列数据进行一一比较

#10&#xff09;查询每个学生超过他自己选修课程平均成绩的课程号 这里要先进行分组得到每个学号对应的平均成绩&#xff0c;在用表中的成绩grade与得到的平均成绩一一比较 这里可以进行连表操作&#xff0c;把分组查询得到的结果与原表通过sno学号进行等值连接 &#xff0c;就…

MySQL数据库外键约束打开与关闭 ️

MySQL数据库外键约束打开与关闭 &#x1f6e0;️ MySQL数据库外键约束打开与关闭 &#x1f6e0;️摘要 &#x1f4dd;引言 &#x1f680;正文内容&#xff08;详细介绍&#xff09; &#x1f4a1;关闭外键约束检查外键约束检查关闭的作用风险与最佳实践建议 &#x1f914; QA环…

一分钟成为点灯大师(超简单1行代码-STM32F407的HAL实现按键中断方式点亮LED灯)

一、开发环境 硬件&#xff1a;正点原子探索者 V3 STM32F407 开发板 单片机&#xff1a;STM32F407ZGT6 Keil版本&#xff1a;5.32 STM32CubeMX版本&#xff1a;6.9.2 STM32Cube MCU Packges版本&#xff1a;STM32F4 V1.27.1 使用STM32F407的HAL库实现按键中断方式读取按键…

在Vue项目使用kindEditor富文本编译器以及上传图片

第一步 npm install kindeditor第二步&#xff0c;建立kindeditor.vue组件 <template><div class"kindeditor"><textarea :id"id" name"content" v-model"outContent"></textarea></div> </templa…

49-PCIE转网口电路设计

视频链接 PCIE转网口电路设计01_哔哩哔哩_bilibili PCIe转网口电路设计 1、PCIE转网口电路设计基本介绍 pcie转网口的设计&#xff0c;一般有intel (i350)和网讯&#xff08;wx1860&#xff09;两种方案。 2、PCIE转网口的方案 2.1、I350 2.2、WX1860 (网迅) 国产化&#…