当前位置: 首页 > news >正文

sscanf() 用法详解

sscanf()scanf() 的变体,它用于从字符串中提取格式化数据,常用于解析输入字符串


1️⃣ sscanf() 语法

int sscanf(const char *str, const char *format, ...);
  • str:要解析的字符串(必须是 const char*,可以用 c_str() 转换 string)。
  • format:格式化字符串(指定数据类型,如 %d%s%f)。
  • ...:可变参数,用于存储解析出的数据。

📌 返回值

  • 成功匹配的变量个数(即成功解析的数据个数)。
  • 解析失败返回 0EOF

2️⃣ sscanf() 基本示例

🌟 示例 1:解析整数

#include <iostream>
#include <cstdio>  // sscanf 需要引入
using namespace std;int main() {const char* str = "123 456";int a, b;sscanf(str, "%d %d", &a, &b);cout << "a = " << a << ", b = " << b << endl;return 0;
}

🖥 输出

a = 123, b = 456

sscanf() 读取 str,并按照 %d %d解析两个整数


3️⃣ sscanf() 解析不同数据类型

🌟 示例 2:解析多个数据类型

#include <iostream>
#include <cstdio>
using namespace std;int main() {const char* str = "42 3.14 hello";int num;float pi;char word[20];sscanf(str, "%d %f %s", &num, &pi, word);cout << "整数: " << num << endl;cout << "浮点数: " << pi << endl;cout << "字符串: " << word << endl;return 0;
}

🖥 输出

整数: 42
浮点数: 3.14
字符串: hello

sscanf() 解析 整数、浮点数、字符串


🌟 示例 3:解析 chardouble

#include <iostream>
#include <cstdio>
using namespace std;int main() {const char* str = "A 2.718";char letter;double num;sscanf(str, "%c %lf", &letter, &num);cout << "字符: " << letter << endl;cout << "双精度浮点数: " << num << endl;return 0;
}

🖥 输出

字符: A
双精度浮点数: 2.718

sscanf() 解析 字符和 double 类型


4️⃣ sscanf() 解析特定格式的字符串

🌟 示例 4:解析日期

#include <iostream>
#include <cstdio>
using namespace std;int main() {const char* str = "2024-03-31";int year, month, day;sscanf(str, "%d-%d-%d", &year, &month, &day);cout << "Year: " << year << ", Month: " << month << ", Day: " << day << endl;return 0;
}

🖥 输出

Year: 2024, Month: 3, Day: 31

sscanf() 解析 "2024-03-31"年、月、日


5️⃣ sscanf() 解析复数

🌟 示例 5:解析复数 a+bi

#include <iostream>
#include <cstdio>
using namespace std;int main() {string num1 = "-3+2i";string num2 = "1+-4i";int a, b, c, d;sscanf(num1.c_str(), "%d+%di", &a, &b);sscanf(num2.c_str(), "%d+%di", &c, &d);cout << "num1: 实部 = " << a << ", 虚部 = " << b << endl;cout << "num2: 实部 = " << c << ", 虚部 = " << d << endl;return 0;
}

🖥 输出

num1: 实部 = -3, 虚部 = 2
num2: 实部 = 1, 虚部 = -4

sscanf() 解析 复数的实部和虚部


6️⃣ sscanf() 错误处理

🌟 示例 6:检查解析结果

#include <iostream>
#include <cstdio>
using namespace std;int main() {const char* str = "abc 123";int num;int count = sscanf(str, "%d", &num);if (count == 1) {cout << "成功解析: " << num << endl;} else {cout << "解析失败" << endl;}return 0;
}

🖥 输出

解析失败

sscanf() 解析 abc 失败,因为它不是整数。


📌 结论

用法

格式符

示例输入

解析后结果

整数解析

%d

"42"

42

浮点数解析

%f

/ %lf

"3.14"

3.14

字符解析

%c

"A"

'A'

字符串解析

%s

"hello"

"hello"

复数解析

%d+%di

"-3+2i"

-3, 2

日期解析

%d-%d-%d

"2024-03-31"

2024, 3, 31

🔹 sscanf() 是解析字符串数据的强大工具,常用于格式化输入解析,如处理用户输入、文件读取、日志分析等。

相关文章:

sscanf() 用法详解

sscanf() 是 scanf() 的变体&#xff0c;它用于从字符串中提取格式化数据&#xff0c;常用于解析输入字符串。 1️⃣ sscanf() 语法 int sscanf(const char *str, const char *format, ...); str&#xff1a;要解析的字符串&#xff08;必须是 const char*&#xff0c;可以用…...

0基础入门scrapy 框架,获取豆瓣top250存入mysql

一、基础教程 创建项目命令 scrapy startproject mySpider --项目名称 创建爬虫文件 scrapy genspider itcast "itcast.cn" --自动生成 itcast.py 文件 爬虫名称 爬虫网址 运行爬虫 scrapy crawl baidu(爬虫名&#xff09; 使用终端运行太麻烦了&#xff0c;而且…...

Linux常见操作命令(2)

(一&#xff09;复制和移动 复制和移动都分为文件和文件夹&#xff0c;具体的命令是cp和mv。 1.复制文件&#xff08;复制的文件要是已创建&#xff09; 格式&#xff1a;cp 源文件 目标文件。 示例&#xff1a;把filel.txt复制一份得到file2.txt。 那么对应的命令就是&#x…...

谷歌将 Android OS 完全转变为 “内部开发”

2025 年 3 月 27 日&#xff0c;据 Android Authority 报道&#xff0c;谷歌证实将从下周开始完全在内部分支机构闭门开发安卓操作系统。相关信息如下&#xff1a; 背景&#xff1a;多年来&#xff0c;谷歌同时维护着两大安卓主要分支&#xff0c;一是面向公众开放的 “安卓开源…...

移动端六大语言速记:第2部分 - 控制结构

移动端六大语言速记&#xff1a;第2部分 - 控制结构 本文继续对比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift这六种移动端开发语言的控制结构&#xff0c;帮助开发者快速掌握各语言的语法差异。 2. 控制结构 2.1 条件语句 各语言条件语句的语法对比&#xff1a; …...

【 Vue 2 中的 Mixins 模式】

Vue 2 中的 Mixins 模式 在 Vue 2 里&#xff0c;mixins 是一种灵活的复用代码的方式&#xff0c;它能让你在多个组件间共享代码。借助 mixins&#xff0c;你可以把一些通用的选项&#xff08;像 data、methods、computed 等&#xff09;封装到一个对象里&#xff0c;然后在多…...

STM32F103_LL库+寄存器学习笔记13 - 梳理外设CAN与如何发送CAN报文(串行发送)

导言 CAN总线因其高速稳定的数据传输与卓越抗干扰性能&#xff0c;在汽车、机器人及工业自动化中被广泛应用。它采用分布式网络结构&#xff0c;实现多节点间实时通信&#xff0c;确保各控制模块精准协同。在汽车领域&#xff0c;CAN总线连接发动机、制动、车身系统&#xff0c…...

DataPlatter:利用最少成本数据提升机器人操控的泛化能力

25年3月来自中科院计算所的论文“DataPlatter: Boosting Robotic Manipulation Generalization with Minimal Costly Data”。 视觉-语言-动作 (VLA) 模型在具身人工智能中的应用日益广泛&#xff0c;这加剧对多样化操作演示的需求。然而&#xff0c;数据收集的高成本往往导致…...

受控组件和非受控组件的区别

在 React 中&#xff0c;​受控组件&#xff08;Controlled Components&#xff09;​ 和 ​非受控组件&#xff08;Uncontrolled Components&#xff09;​ 是处理表单元素的两种不同方式&#xff0c;它们的核心区别在于 ​数据管理的方式 和 ​与 React 的交互模式。 受控组件…...

Mhand Pro 多节点动作捕捉手套:一副手套多场景应用

随着动作捕捉技术的发展&#xff0c;动捕手套的出现为虚拟现实交互、VR游戏开发、机器臂/灵巧手遥操作等方面带来了更加便捷可行的方案。 广州虚拟动力作为一家在动作捕捉领域深耕多年的公司&#xff0c;基于传感器技术而研发的多节点惯性动作捕捉手套&#xff0c;兼具VR交互与…...

Kafka消息丢失全解析!原因、预防与解决方案

作为一名高并发系统开发工程师&#xff0c;在使用消息中间件的过程中&#xff0c;无法避免遇到系统中消息丢失的问题&#xff0c;而Kafka作为主流的消息队列系统&#xff0c;消息丢失问题尤为常见。 在这篇文章中&#xff0c;将深入浅出地分析Kafka消息丢失的各种情况&#xf…...

BERT与Transformer到底选哪个-上部

一、先理清「技术家谱」&#xff1a;BERT和Transformer是啥关系&#xff1f; 就像「包子」和「面食」的关系——BERT是「Transformer家族」的「明星成员」&#xff0c;而GPT、Qwen、DeepSeek这些大模型则是「Transformer家族」的「超级后辈」。 1.1 BERT&#xff1a;Transfor…...

【Unity】记录TMPro使用过程踩的一些坑

1、打包到webgl无法输入中文&#xff0c;编辑器模式可以&#xff0c;但是webgl不行&#xff0c;试过网上的脚本&#xff0c;还是不行 解决方法&#xff1a;暂时没找到 2、针对字体asset是中文时&#xff0c;overflow的效果模式处理奇怪&#xff0c;它会出现除了overflow模式以…...

数据处理的两种范式:深入解析OLTP与OLAP系统

目录 前言1. OLTP&#xff1a;业务运作的基石1.1 OLTP的核心定义与价值1.2 OLTP的技术架构特点1.3 OLTP的典型应用场景 2. OLAP&#xff1a;决策支持的大脑2.1 OLAP的基本概念与作用2.2 OLAP的技术实现方式2.3 OLAP的应用实践 3. OLTP与OLAP的对比与融合3.1 核心差异的深度解析…...

本地飞牛NAS快速部署WordPress个人网站并一键上线公网远程访问

文章目录 前言1. Docker下载源设置2. Docker下载WordPress3. Docker部署Mysql数据库4. WordPress 参数设置5. 飞牛云安装Cpolar工具6. 固定Cpolar公网地址7. 修改WordPress配置文件8. 公网域名访问WordPress ​ 推荐 ​ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗…...

windows环境下的cmake使用

创建一个目录testcmake 进入目录 创建一个文件main.cpp : #include <iostream> using namespace std; int main(){cout<<"what is going on?"<<endl;return 0; }再创建一个cmakelists.txt set(CMAKE_CXX_STANDARD 20) add_executable(test2 mai…...

多线程(多线程案例)(续~)

目录 一、单例模式 1. 饿汉模式 2. 懒汉模式 二、阻塞队列 1. 阻塞队列是什么 2. 生产者消费者模型 3. 标准库中的阻塞队列 4. 自实现阻塞队列 三、定时器 1. 定时器是什么 2. 标准库中的定时器 欢迎观看我滴上一篇关于 多线程的博客呀&#xff0c;直达地址&#xf…...

同步SVPWM调制策略的初步学习记录

最近项目需要用到一些同步调制SVPWM相关的内容&#xff08;现在的我基本都是项目驱动了&#xff09;&#xff0c;因此对该内容进行一定的学习。 1 同步SVPWM调制的背景 我们熟知的一些知识是&#xff1a;SVPWM&#xff08;空间矢量脉宽调制&#xff09;是一种用于逆变器的调制…...

权重参数矩阵

目录 1. 权重参数矩阵的定义与作用 2. 权重矩阵的初始化与训练 3. 权重矩阵的解读与分析 (1) 可视化权重分布 (2) 统计指标分析 4. 权重矩阵的常见问题与优化 (1) 过拟合与欠拟合 (2) 梯度问题 (3) 权重对称性问题 5. 实际应用示例 案例1&#xff1a;全连接网络中的…...

堆叠虚拟化

各厂商叫法不同&#xff1a;思科 VSS 锐捷 VSU 华为 Stack 华三 IRF 虚拟化为一台设备进行管理&#xff0c;从而实现高可靠性。当任意交换机故障时&#xff0c;都能实现设备、链路切换&#xff0c;保护客户业务稳定运行 传统的园区网高可靠性技术出现故障时切换时间很难做到毫…...

3.31-4 性能面试题

面试题 1、性能问题的六个特征&#xff1a; &#xff08;1&#xff09;、持续缓慢&#xff1a; &#xff08;2&#xff09;、随着时间推进越来越慢、 &#xff08;3&#xff09;、随着负载增加越来越慢、 &#xff08;4&#xff09;、零星挂起或异常错误、 &#xff08;5…...

2025年最新自动化/控制保研夏令营预推免面试真题分享(东南/浙大/华科清华)

笔者来2021级本科自动化专业&#xff0c;以下部分将介绍我在夏令营以及预推免期间发生经历和问题 东南大学自动化学院 东南大学&#xff1a; 东南大学面试有一个十分明显的特点&#xff0c;就是极其注重专业课&#xff0c;基本上就是在面试的时候电脑上会有几个文件夹&#x…...

freecad手动装插件 add on

python工作台输入 FreeCAD.ConfigGet("UserAppData") 在返回的地址上新建文件夹&#xff1a;Mod #like /home/chen/snap/freecad/common 进入Mod #like /home/chen/snap/freecad/common/Mod git clone 你要的项目 #like git clone https://github.com/looooo/f…...

mysql 主从搭建步骤

主库&#xff1a; 开启log-bin参数&#xff0c;log-bin 参数修改需要重启服务器 --You can change the server_id value dynamically by issuing a statement like this:SET GLOBAL server_id 2;--to enable binary logging using a log file name prefix of mysql-bin, and c…...

从AI大模型到MCP中台:构建下一代智能服务的核心架构

从AI大模型到MCP中台&#xff1a;构建下一代智能服务的核心架构 引言&#xff1a;AI大模型带来的服务重构革命 在ChatGPT掀起全球AI热潮的今天&#xff0c;大模型展现出的惊人能力正在重塑整个软件服务架构。但鲜为人知的是&#xff0c;真正决定AI服务成败的不仅是模型本身&a…...

31天Python入门——第18天:面向对象三大特性·封装继承多态

你好&#xff0c;我是安然无虞。 文章目录 面向对象三大特性1. 封装2. 继承3. 多态4. 抽象基类5. 补充练习 面向对象三大特性 面向对象编程&#xff08;Object-Oriented Programming, 简称OOP&#xff09;有三大特性, 分别是封装、继承和多态.这些特性是面向对象编程的基础, …...

css_z-index属性

z-index 工作原理及层叠上下文&#xff08;Stacking Context&#xff09; 在 CSS 中&#xff0c;z-index 主要用于控制元素的堆叠顺序&#xff0c;决定哪些元素显示在上层&#xff0c;哪些元素在下层。它的工作原理涉及 层叠上下文&#xff08;Stacking Context&#xff09;&a…...

ros2--xacro

什么是xacro 在ROS 2中&#xff0c;Xacro&#xff08;XML Macros&#xff09;是一种基于XML的宏语言&#xff0c;专门用于简化URDF&#xff08;Unified Robot Description Format&#xff09;文件的编写。它通过宏定义、变量替换和代码复用等功能&#xff0c;让机器人模型的描…...

Nordic 新一代无线 SoC nRF54L系列介绍

目录 概述 1 nRF54L系列特点 1.1 内存 1.2 芯片封装 2 增强的多协议支持 3 其他特性 4 nRF54L系列MCU特性 4.1 多协议无线电 4.2 安全性 4.3 存储空间 4.4 工作参数 4.5 调试接口 4.6 外设 概述 全新 nRF54L 系列的所有三款器件均将 2.4 GHz 无线电和 MCU 功能 (包括…...

力扣HOT100之矩阵:240. 搜索二维矩阵 II

这道题直接暴力AC的&#xff0c;虽然也能过&#xff0c;但是耗时太长了。 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int edge min(matrix.size(), matrix[0].size()) - 1; //先在edge * edge的矩阵中搜索for…...

一个判断A股交易状态的python脚本

最近在做股票数据相关的项目&#xff0c;需要用到判断某一天某个时刻A股的状态&#xff0c;比如休市&#xff0c;收盘&#xff0c;交易中等&#xff0c;发动脑筋想了一下&#xff0c;这个其实还是比较简单的&#xff0c;这里我把实现方法分享给大家。 思路 当天是否休市 对于某…...

为什么package.json里的npm和npm -v版本不一致?

这个情况出现是因为package.json里的 npm 版本和系统实际使用的 npm 版本是两个不同的概念。让我来解释一下&#xff1a; 原因解释 全局 npm vs 项目依赖&#xff1a; npm -v显示的是系统全局安装的 npm 版本&#xff08;位于/usr/bin/npm或类似路径&#xff09;package.jso…...

Rust 有问有答之 use 关键字

use 是什么# use 是 Rust 编程语言的关键字。using 是 编程语言 C# 的关键字。 关键字是预定义的保留标识符&#xff0c;对编译器有特殊意义。 using 关键字有三个主要用途&#xff1a; using 语句定义一个范围&#xff0c;在此范围的末尾将释放对象。 using 指令为命名空间创…...

[skip]CBAM

论文题目:CBAM: Convolutional Block Attention Module 中文题目:CBAM: 注意力卷积模块 0摘要 我们提出了卷积块注意力模块(CBAM),一个简单而有效的前馈卷积神经网络注意力模块。给定一个中间特征图,我们的模块沿着两个独立的维度(通道和空间)顺序推断注意力图,然后…...

突破反爬困境:SDK开发,浏览器模块(七)

声明 本文所讨论的内容及技术均纯属学术交流与技术研究目的&#xff0c;旨在探讨和总结互联网数据流动、前后端技术架构及安全防御中的技术演进。文中提及的各类技术手段和策略均仅供技术人员在合法与合规的前提下进行研究、学习与防御测试之用。 作者不支持亦不鼓励任何未经授…...

在MFC中使用Qt(四):使用属性表(Property Sheet)实现自动化Qt编译流程

前言 首先回顾下前面文章介绍的&#xff1a; 在MFC中使用Qt&#xff08;一&#xff09;&#xff1a;玩腻了MFC&#xff0c;试试在MFC中使用Qt&#xff01;&#xff08;手动配置编译Qt&#xff09; 在MFC中使用Qt&#xff08;二&#xff09;&#xff1a;实现Qt文件的自动编译流…...

相机镜头景深

文章目录 定义影响因素实际应用特殊情况 参考&#xff1a;B站优致谱视觉 定义 景深是指在摄影机镜头或其他成像器前沿着能够取得清晰图像的成像器轴线所测定的物体距离范围。简单来说&#xff0c;就是在一张照片中&#xff0c;从前景到背景&#xff0c;能够保持清晰锐利的区域…...

HTML实现图片上添加水印的工具

HTML实现图片上添加水印的工具 本文介绍两种实现方式&#xff1a;图片上添加文字水印和图片上添加图片水印。部分源码参照自网络。 一、图片上添加文字水印 先看效果图&#xff1a; 源码如下&#xff1a; <!DOCTYPE html> <html lang"zh"> <head&…...

mysql JSON_ARRAYAGG联合JSON_OBJECT使用

父表数据&#xff08;表名&#xff1a;class&#xff09; idname1一年级2二年级3三年级 子表数据&#xff08;表名&#xff1a;students&#xff09; idnameclassId11张三112李四113小明3 sql查询&#xff08;推荐使用方法一&#xff09; 方法一 (使用IFNull判断子表数据是否…...

VMware虚拟机 ubuntu22.04无法与共享粘贴板和拖拽文件的解决方案

VMware虚拟机 ubuntu22.04无法与共享粘贴板和拖拉文件的解决方案 卸载VMware tools安装open-vm-tools还无法拖拽文件 卸载VMware tools 确保卸载完vmware-tools # 进入vmware-tools安装目录/bin sudo vmware-uninstall-tools.pl sudo rm -rf /usr/lib/vmware-tools sudo apt-…...

C++STL---<functional>

C标准库中的 <functional> 库是一个强大的工具集&#xff0c;它提供了用于处理函数对象、函数绑定、函数包装等功能的设施&#xff0c;极大地增强了代码的灵活性和可复用性。 1. 函数对象&#xff08;Functors&#xff09; 函数对象&#xff0c;也被称作仿函数&#xf…...

【Android】BluetoothSocket.connect () 的实现与协议栈交互源码解析

本文以 Android 蓝牙框架中的BluetoothSocket.connect()方法为切入点,深入剖析 Android 设备与远程蓝牙设备建立连接的全流程。从 Java 层的 API 调用出发,逐步追踪至 JNI 层的接口转发,最终进入 Buedroid 协议栈(RFCOMM/L2CAP 层),揭示蓝牙连接的核心机制。重点解析了权…...

算法导论(动态规划)——简单多状态

算法思路&#xff08;17.16&#xff09; 状态表示&#xff1a; 在处理线性动态规划问题时&#xff0c;我们可以通过“经验 题目要求”来定义状态表示。通常有两种选择&#xff1a; 以某个位置为结尾的情况&#xff1b;以某个位置为起点的情况。 本题中&#xff0c;我们选择更常…...

主成分分析(PCA)学习介绍及其高阶应用,金融风险分析

前言 主成分分析&#xff08;Principal Component Analysis, PCA&#xff09;是统计学中一种重要的降维技术。它通过寻找数据中各特征之间的线性关系&#xff0c;来降低数据的维度&#xff0c;同时保留数据中的主要信息。PCA在机器学习、信号处理、图像处理等领域广泛应用&…...

利用 SSRF 和 Redis 未授权访问进行内网渗透

目录 环境搭建 ​编辑 发现内网存活主机 ​编辑 扫描内网端口 ​编辑 利用 Redis 未授权访问进行 Webshell 写入 步骤1&#xff1a;生成 payload 方式1&#xff1a;使用python生成 payload 方式二&#xff1a;使用 Gopher 工具 步骤 2&#xff1a;写入 Webshell&#xf…...

计算机网络和因特网

目录 1、什么是Internet&#xff1f; 1.1定义 1.2具体构成描述 2、什么是协议&#xff1f; 2.1 服务描述 2.2 网络协议 3、网络边缘 3.1 定义与组成 3.2 模式 3.3服务 4、接入网、物理媒介 4.1、宽带有线接入网技术 4.2、宽带无线接入网技术 5、网络核心&#xf…...

1.oracle修改配置文件

1.找到oracle的安装路径 D:\app\baozi\product\11.2.0\dbhome_1\NETWORK\ADMIN &#xff0c;修改下面的两个文件。如果提示没有权限&#xff0c;可以先把这两个文件复制到桌面&#xff0c;修改完后&#xff0c;在复制回来。 2.查看自己电脑的主机名&#xff0c; 右击 - 此电脑 …...

算法篇-------------双指针法

温馨提示&#xff1a;由于c语言在编程上更有优势&#xff0c;更加简洁&#xff0c;本文代码均为c代码&#xff0c;其他语言也可以 做&#xff0c;思想是不变的&#xff01; 1.应用场景 涉及到对数组的操作的题目&#xff0c;可以考虑双指针方法解决 2.基…...

Java关于包和final

什么是包&#xff1f; 包就是文件夹。用来管理等各种不同功能的java类&#xff0c;方便后期代码维护 包名的规则&#xff1a;公司域名反写包的作用&#xff0c;需要全部英文小写&#xff0c;见名知意。例如&#xff1a;com.pdsu.domain package com.pdsu.demain;public class…...

2025年华为HCIP题库分享

1101、 【拖拽题】OPSF邻接关系建立的过程中需要使用不同的报文&#xff0c;那么请分别将以下各个状态和该状态使用的报文联系起来。 答题格式为&#xff1a;11 22 33 43 正确答案&#xff1a;【12】【21】【24】【33】 解析&#xff1a; 建立邻居关系 RouterA的一个连接到广…...