scanf和printf函数

简介: scanf和printf函数

一:基本用法

printf和scanf都是库函数,使用时需引用头文件<stdio.h>


1:printf:

"f"是format(格式)的缩写,printf的作用是将参数文本输出到屏幕。如:字符串的输出



2:scanf:

用于读取用户的输入。当程序运行到这个语句时,程序会停下来,等待用户的输入,输入后程序继续执行。

处理用户输入的原理是:用户先输入的先放入缓存,等按下回车键时,按照占位符对缓存进行解读。

当输入5时,程序执行如下图:


二:占位符

定义:就是这个位置可以用其他值代入。格式字符串中有几个占位符,就有几个变量。

常用的占位符有:%d(十进制整数),%c(字符型),%s(字符串型),%f(小数,包含float和double),%%(输出一个百分号)


删除线格式


使用scanfhans函数时的特殊占位符:%c,%s

1:%c不会忽略空白字符,总是返回当前的第一个字符。

无空白字符时,如下图所示:

有空白字符时,如下图所示:

如果想要强制跳过字符前的空白字符,可以在%c前加上一个空格,表示跳过0个或多个空白字符。


2:%s从当前的第一个非空白字符开始读起,直到遇到空白字符(空格,换行符,字符表等)结束。

如下图:


scanf将字符串读入字符数组时不会检测字符串是否超过了数组长度,为了防止错误发生,使用%s时指定字符串的最长长度,写成%[m]s,[m]是一个整数,表示字符串的最长长度,后面的字符被丢弃。

改正后:


三:限定宽度和小数位数

##1: 宽度的限制

从上例,%5d表示这个占位符最少长度为5,如不满5位,在结果前面加空格,也就是右对齐。“-”表示在结果后加空格,也就是左对齐,如下图所示:



2:小数位数的限制



3:部分字符串的输出

4:scanf函数具有返回值,表示成功读取的变量的个数。如果没有读取到任何项,或匹配失败,则返回0.如果在成功读取任数据之前,发生了读取错误或遇到文件结尾,则返回常量EOF.


目录
相关文章
|
Web App开发 关系型数据库 RDS
电源缓启动(软起动)原理分享
该文讨论了电源的缓启动(软起动)技术,主要是为了解决热插拔时的电源振荡和冲击电流问题。缓启动电路有两个主要功能:防抖动延时上电和控制输入电流上升斜率。文章提到了电压斜率型缓启动电路,通过MOS管和相关电阻、电容元件实现延迟和电流控制。电路设计中,MOS管的栅极电压和漏源电流的变化决定了电流上升斜率,从而限制热插拔时的冲击。
1040 0
|
搜索推荐 C++
C++冒泡排序的实现
C++冒泡排序的实现
436 0
|
负载均衡 安全 网络安全
聊一聊负载均衡SLB的DDoS防护
众所周知,DDoS(分布式拒绝服务攻击)攻击是当前互联网上最常见,却最难以防范的一种攻击,其基本原理是黑客通过发动成千上万的肉鸡,在短时间内对被攻击目标发起海量访问,大量占用被攻击目标的服务资源,使得正常的业务访问无法进行,具有危害大、成本低、防范难等特点。
14022 0
|
7月前
|
SQL XML Java
MyBatis Mapper中使用limit参数的查询问题
总结而言,MyBatis中使用 `limit`参数的查询可以高度定制并且灵活,基于方法签名和XML映射文件的组合来达成多样化的查询需求。通过参数化查询和动态SQL,MyBatis可以有效地处理各种复杂情境下的数据库操作,并且将SQL语句的维护与业务代码的编写相分离,提升代码的可维护性和可阅读性。
652 13
|
8月前
|
XML JSON API
API接口——连接世界,让你的数据畅通无阻!
API(应用程序编程接口)是连接不同软件系统的桥梁,如同数字世界的“万能适配器”。它通过标准化协议(如RESTful)和数据格式(如JSON/XML),实现前端请求与后端服务的无缝交互。API不仅提升了系统间的协作效率,还通过OAuth 2.0等技术保障安全性,并支持流量管控以优化性能。其应用场景广泛,包括金融科技、物联网、电子商务和社会化平台,为企业带来显著效益,如降低成本、提升响应速度和用户增长。未来,API将向智能化、微服务化、低代码集成和隐私计算方向发展,成为构建数字生态的核心技术,助力万物互联时代的创新与发展。
1234 1
|
10月前
|
域名解析 API PHP
VM虚拟机全版本网盘+免费本地网络穿透端口映射实时同步动态家庭IP教程
本文介绍了如何通过网络穿透技术让公网直接访问家庭电脑,充分发挥本地硬件性能。相比第三方服务受限于转发带宽,此方法利用自家宽带实现更高效率。文章详细讲解了端口映射教程,包括不同网络环境(仅光猫、光猫+路由器)下的设置步骤,并提供实时同步动态IP的两种方案:自建服务器或使用三方API接口。最后附上VM虚拟机全版本下载链接,便于用户在穿透后将服务运行于虚拟环境中,提升安全性与适用性。
678 7
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【损失函数篇】| WIoU v3:针对低质量样本的边界框回归损失函数
YOLOv11改进策略【损失函数篇】| WIoU v3:针对低质量样本的边界框回归损失函数
2106 6
|
11月前
鸿蒙开发:wrapBuilder来封装全局@Builder
首先第一点,在同一个UI组件内,同一个wrapBuilder只能初始化一次,第二点就是WrappedBuilder对象的builder属性方法只能在struct内部使用。
311 7
|
存储 SQL Java
技术心得记录:压缩包Zip格式详析(全网最详细)
技术心得记录:压缩包Zip格式详析(全网最详细)
|
运维 网络安全 网络架构
IEPL与IPLC国际专线的区别介绍
IPLC(国际私有租用线路)和IEPL(国际以太网专线)均为企业提供跨国端到端的通信线路服务。IPLC基于SDH/DDN技术,提供专有带宽连接,支持多种业务传输,具备高可靠性和灵活性。IEPL则基于MSTP平台,采用GFP封装,提供以太网接口的增强型专线服务,具有更高的灵活性、安全性及成本效益,适合需要高带宽和低延迟的业务场景。两者主要区别在于技术基础、接口类型及成本结构。
3466 70