详解格式化输入函数scanf

大家好,今天给大家介绍详解格式化输入函数scanf,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。

C语言中常用的输入可以有多种方式,如scanf(),getchar(),gets()。

它们的功能都类似(获取键盘输入的数据),但scanf()因功能使用、函数简单,而深受编程者喜爱。

scanf()函数功能: 执行格式化输入(用户可以按照指定格式输入数据)

scanf()函数原型: int scanf(char *format[,argument,...]);

scanf()从标准输入设备(通常指键盘) 读取输入的信息,并将读入任何固有类型的数据自动变换成适当的机内格式。其格式为: scanf("<格式化字符串>",<地址表>);scanf()函数返回成功赋值的数据项数,出错时则返回EOF。

例如以下程序

int mian(void){int a;scanf(“%d”,&a);return 0;}

当程序运行到scanf(“%d”,&a)时会阻塞,等待键盘输入。如果我们在键盘上按下“5”、“7”然后回车了,那么“5”、“7”、回车键“\n”都被逐一放入缓冲区里,又由于回车键是特殊的字符(可实现清除行缓冲),它先将字符'\n'添加到缓冲区,随后便清除缓冲区 ,将其中的所有字符发送到一个叫做输入列表的地方 ,scanf函数以及其他标准输入函数便会立刻从输入列表中获取内容。

上述程序按照%d的规则从输入列表中获取字符 ,它获取了'5'、'7',并且将其转变为整数57,存入了变量a中。

如果我们将程序改为以下形式,

int mian(void){char a[10];scanf(“%s”,a);return 0;}

如果我们还是在键盘上按下“5”、“7”然后回车了,那么“5”、“7”、回车键“\n”还是一样被逐一放入缓冲区里;又由于回车键是特殊的字符(可实现清除行缓冲),它先将字符'\n'添加到缓冲区,随后便清除缓冲区 ,将其中的所有字符发送到一个叫做输入列表的地方 ,scanf函数以及其他标准输入函数便会立刻从输入列表中获取内容。

程序按照%s的规则从输入列表中获取字符 ,它获取了'5'、'7',并且将其转变为字符串“57”,存入了变量a中。

总之,我们输入的数据及缓冲中的数据都是一致的,只不过scanf函数根据不同的格式进行了不同的转换而已(省去了程序员自己转换数据的麻烦)。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

(点击找小助理领取)

扫码进群领资料icon-default.png?t=N7T8https://ad.pdb2.com/l/16QijNiGb32IFIn

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

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

相关文章

centos中docker操作

一、安装docker 确保系统是CentOS 7并且内核版本高于3.10,可以通过uname -r命令查看内核版本。 更新系统软件包到最新版本,可以使用命令yum update -y。 安装必要的软件包,包括yum-utils、device-mapper-persistent-data和lvm2。使用命令yum install -y yum-utils devic…

Mysql制作数据表

一.注意&#xff1a; 1.&#xff08;Mysql尽量用大写&#xff0c; 2.结尾为‘&#xff1b;’&#xff0c; 3.‘’与“”效果一样&#xff0c; 4.数据表名称显示时定为小写&#xff0c; 5.很多人教的时候喜欢用英文&#xff0c;我觉得麻烦&#xff0c;于是我用中文举例&…

moduleID的使用

整个平台上有很多相同的功能&#xff0c;但是需要不同的内容。例如各个模块自己的首页上有滚动新闻、有友好链接等等。为了公用这些功能&#xff0c;平台引入了moduleID的解决方案。 在前端的配置文件中&#xff0c;配置了模块号&#xff1a; 前端页面请求滚动新闻时&#xff0…

微软AD域替代方案,助力企业摆脱hw期间被攻击的窘境

在红蓝攻防演练&#xff08;hw行动&#xff09;中&#xff0c;AD域若被攻击成功&#xff0c;是其中一个扣分最多的一项内容。每年&#xff0c;宁盾都会接到大量AD在hw期间被攻击&#xff0c;甚至是被打穿的企业客户。过去&#xff0c;企业还会借助2FA双因子认证加强OA、Exchang…

ChatGPT高效提问—prompt常见用法(续篇七)

ChatGPT高效提问—prompt常见用法&#xff08;续篇七&#xff09; 1.1 零样本、单样本和多样本 ​ ChatGPT拥有令人惊叹的功能和能力&#xff0c;允许用户自由向其提问&#xff0c;无须提供任何具体的示例样本&#xff0c;就可以获得精准的回答。这种特性被称为零样本&#x…

每日一题——LeetCode1417.重新格式化字符串

方法一 个人方法&#xff1a; s里的字符只有小写字母和数字两种情况&#xff0c;我们可以把s里的字母和数字分隔成两个字符串&#xff0c; 比较两个字符串的长度&#xff0c;只有当两个字符串的长度差值的绝对值为1或0才能满足题意。 长度更长的要放在结果字符串的第一位&am…

嵌入式学习之Linux入门篇笔记——18,makefile基本语法(下)

配套视频学习链接&#xff1a;http://【【北京迅为】嵌入式学习之Linux入门篇】 https://www.bilibili.com/video/BV1M7411m7wT/?p4&share_sourcecopy_web&vd_sourcea0ef2c4953d33a9260910aaea45eaec8 1.wildcard 函数 格式&#xff1a;$&#xff08;wildcard PAT…

SQL如何实现数据表行转列、列转行?

SQL行转列、列转行可以帮助我们更方便地处理数据&#xff0c;生成需要的报表和结果集。本文将介绍在SQL中如何实现数据表地行转列、列转行操作&#xff0c;以及实际应用示例。 这里通过表下面三张表进行举例 SQL创建数据库和数据表 数据表示例数据分别如下&#xff1a; data_…

数据湖的整体思路

湖本质上是一个集中化&#xff0c;中心化的&#xff0c;一体化的存储技术&#xff0c;并且在其之上追求技术架构的统一化&#xff0c;如流批一体&#xff0c;服务分析一体化。 当数据湖成为中心&#xff0c;那么就可以围湖而建“数据服务环”&#xff0c;环上的服务包括了数仓、…

鸿蒙开发(六)布局概述

迄今为止&#xff0c;我还没有正式提到布局的概念。但其实我之前的demo里面&#xff0c;已经默认使用到了一种布局&#xff0c;那就是线性布局&#xff08;Row、Column&#xff09;&#xff0c;这也是DevEco创建项目默认页面里面默认采用的布局。那么本篇&#xff0c;带着大家一…

微服务介绍、使用 Nacos 实现远程调用以及 OpenFeign 的使用

1 微服务的概念 区别于单体项目 单体项目拆分成微服务项目的目标&#xff1a;高内聚、低耦合 拆分思路 纵向拆分&#xff1a;根据功能模块 横向拆分&#xff1a;抽取可复用模块 2 微服务拆分——远程调用 背景&#xff1a;微服务单一职责&#xff0c;每个服务只有自己的功能…

[PYthon] 字典

如题&#xff0c;这篇博客将带大家来学习Python中的字典~ 那么&#xff0c;是我们想象中的那种字典嘛&#xff1f;接下来跟着可莉去一探究竟吧~ 可莉将这篇文章收录在了&#xff1a;《Python》 可莉推荐的优质博主主页&#xff1a;Keve ’ s blog Python 中的字典&#xff08;D…

-转换流-

它是字节流和字符流之间转换的桥梁 转换流本身其实是字符流&#xff1b; 转换流的位置&#xff1a; 分为两个&#xff1a;字符转换输入流&#xff1a;InputStreamReader将InputStream转换为Reader字符转换输出流&#xff1a;OutputStreamWriter将Writer转换为OutputStream 作用…

4.2 Verilog 过程赋值

关键词&#xff1a;阻塞赋值&#xff0c;非阻塞赋值&#xff0c;并行 过程性赋值是在 initial 或 always 语句块里的赋值&#xff0c;赋值对象是寄存器、整数、实数等类型。 这些变量在被赋值后&#xff0c;其值将保持不变&#xff0c;直到重新被赋予新值。 连续性赋值总是处…

LeetCode Python - 6.Z字形变换

文章目录 题目答案运行结果 题目 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你的输…

Qualcomm 蓝牙耳机 FAQ(41)---------Audio 问题分析之 ACAT Tools安装

大家好&#xff01; 新的一年&#xff0c;在此祝大家&#xff1a;新年快乐&#xff01;工作上步步高升&#xff01;&#xff01;龙年大吉&#xff01;&#xff01;&#xff01; 也欢迎大家登录大大通平台&#xff0c;春节期间正常更新文章&#xff0c;期待你的到来&#xff0…

《MySQL 简易速速上手小册》第7章:MySQL监控和日志分析(2024 最新版)

文章目录 7.1 配置和使用 MySQL 监控工具7.1.1 基础知识7.1.2 重点案例&#xff1a;使用 Python 和 Prometheus 监控 MySQL 性能7.1.3 拓展案例 1&#xff1a;自动化 MySQL 慢查询日志分析7.1.4 拓展案例 2&#xff1a;实时警报系统 7.2 解读 MySQL 日志文件7.2.1 基础知识7.2.…

Qt中程序发布及常见问题

1、引言 当我们写好一个程序时通常需要发布给用户使用&#xff0c;那么在Qt中程序又是如何实现发布的呢&#xff0c;这里我就来浅谈一下qt中如何发布程序&#xff0c;以及发布程序时的常见问题。 2、发布过程 2.1、切换为release模式 当我们写qt程序时默认是debug模式&#x…

ICCV 2023 | 8篇论文看扩散模型diffusion用于图像检测任务:动作检测、目标检测、异常检测、deepfake检测...

1、动作检测 DiffTAD: Temporal Action Detection with Proposal Denoising Diffusion 基于扩散方法提出一种新的时序动作检测&#xff08;TAD&#xff09;算法&#xff0c;简称DiffTAD。以随机时序proposals作为输入&#xff0c;可以在未修剪的长视频中准确生成动作proposals。…

【爬虫作业】python爬虫作业——爬取汽车之家

爬取汽车之家期末作业&#xff1a; 代码如下所示&#xff1a; import random import timeimport requests #发送网络请求 import parsel import csv # 1.发送网络请求 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like G…