c语言-scanf函数的用法
文章目录
- 一、scanf是什么?
- 二、通过scanf进行赋值
- scanf 输入一段带空格的句子, %[^\n] 格式字符串。
- 三、赋值忽略符
一、scanf是什么?
函数原型:int scanf ( const char * format, … );
scanf是一个格式输出库函数,因为它是库函数所以它有一个头文件,这个头文件是 <stdio.h>,在使用时一定要引用这个头文件。
scanf函数是一个输入函数,所以接收的参数类型需要满足一定的格式
输入的格式有:各种字符,如字符串,单字符和数字等
scanf从缓冲区读取数据,每次读取一个数据,如果缓冲区中无内容,则出现堵塞,在运行窗口要求用户输入;
scanf(“%d%d”, &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF(-1)。
且返回值为int型
#include<stdio.h>
int main()
{ int a = 0;int b = 0;float f = 0.0f;int r=scanf("%d %d %f",&a, &b, &f);printf("a=%d b=%d f=%f",a, b, f);printf("r = %d\n", r);return 0;
}

如果输入2个数后,按 ctrl+z ,提前结束输入:

如果一个数字都不输入,直接按3次 ctrl+z ,输出的 r 是-1,也就是EOF 。

二、通过scanf进行赋值
指定输入数据所占列宽
scanf(“%3d%3d”,&a,&b)
输入:123456系统自动将123赋给a,456赋给b %后面加‘ * ’用来抑制输入。
scanf(“%2d%*3d%2d”,&a,&b)
输入:1234567。将12赋给a,67赋给b。个数据”345”被跳过不赋给任何变量。 输入数据流分隔。根据格式字符的含义从输入流中取得数据,当输入流中数据类型与格式字符要求不符时,就认为这一项结束。
如:scanf(“%d%c,%d”,&a,&b,&c);
如果输入如下信息:12r12则scanf函数在接收数据时发现”r”类型不匹配,于是把12赋值给a,把”r”赋给变量b,最后把12赋给c。隐示分隔符。空格、制表符’\t’,换行符/回车键’\n’都是C语言认定的数据分隔符。
scanf 输入一段带空格的句子, %[^\n] 格式字符串。
这将允许 scanf 读取输入,直到遇到换行符为止,从而允许输入包含空格的句子。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>int main() {char sentence[100];printf("请输入一段带空格的句子:\n");scanf(" %[^\n]", sentence);printf("输入的句子是:%s\n", sentence);return 0;
}

三、赋值忽略符
#include<stdio.h>
int main()
{ int year = 0;int month = 0;int day = 0;scanf("%d-%d-%d",&year, &month, &day);printf("%d %d %d\n",year, month, day);return 0;
}
如果用户输入2020-12-12,就会正确解读数据,但是如果输入2020/12/12,scanf()就会解析数据失败。
scanf()提供了一个赋值忽略符,只要把*夹在任何占位符的百分号后面,该占位符就不会返回值,解析后将被丢弃。


相关文章:
c语言-scanf函数的用法
文章目录 一、scanf是什么?二、通过scanf进行赋值scanf 输入一段带空格的句子, %[^\n] 格式字符串。 三、赋值忽略符 一、scanf是什么? 函数原型:int scanf ( const char * format, … ); scanf是一个格式输出库函数,…...
AI带货主播插件开发之商品推荐模块!
AI带货主播,作为新兴的人工智能技术应用领域,正逐渐改变着电商直播的格局,在这一领域,商品推荐模块是提升用户体验、增加销售额的关键一环。 本文将探讨AI带货主播插件的商品推荐模块开发,并分享五段关键的源代码&…...
使用Nginx作为反向代理和负载均衡器
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Nginx作为反向代理和负载均衡器 引言 Nginx 简介 安装 Nginx Ubuntu CentOS 配置 Nginx 作为反向代理 配置 Nginx 作为负载…...
【数据结构二叉树】C非递归算法实现二叉树的先序、中序、后序遍历
引言: 遍历二叉树:指按某条搜索路径巡访二叉树中每个结点,使得每个结点均被访问一次,而且仅被访问一次。 除了层次遍历外,二叉树有三个重要的遍历方法:先序遍历、中序遍历、后序遍历。 1、递归算法实现先序、中序、后…...
解决网盘资源搜索难题的利器——全面解析哎哟喂啊盘搜及其优秀推荐平台
海量的资源让我们的选择更加丰富,但同时也带来了资源搜索的诸多痛点。无论是寻找最新的影视资源、软件工具,还是各类学习资料,用户常常面临以下几个问题: 资源更新不及时:很多平台资源更新缓慢,用户难以第一时间获取最新内容。 搜索效率低下:关键词搜索不精准,导致需要翻阅大量…...
草料二维码:低成本高效率的访客管理解决方案
在当前的商业和政治环境中,企业和政府机构越来越重视安全保密措施,尤其是对外来人员的行踪记录和管理。访客管理已成为企业运营中不可或缺的一环,它不仅提升了安全性,还增强了效率和便捷性。然而,许多机构仍在使用传统…...
qt管理系统框架(好看界面、漂亮界面、好看的界面、漂亮的界面)
概述 最近一个项目用QT开发,然后找了美工帮设计了下界面。总算完工,后想一下干脆抽出一个基础框架,方便以后用。 功能 支持mysql、echarts。 支持加载动态权限菜单,轻松权限控制。 支持遮罩对话框、抽屉 支持开机启动动画界面 内…...
在VSCode中读取Markdown文件
在VSCode安装Markdown All in One或Markdown Preview Enhanced即可 插件Markdown All in One GitHub:https://github.com/yzhang-gh/vscode-markdown v3.6.2下载链接:https://marketplace.visualstudio.com/_apis/public/gallery/publishers/yzhang/vs…...
Linux rabbitmq客户端 SimpleAmqpClient 源码编译
SimpleAmqpClient的编译成库,加入到工程中 1、下载SimpleAmqpClient 源码: git克隆的路径为:https://github.com/alanxz/SimpleAmqpClient.git 下载压缩包路径:https://codeload.github.com/alanxz/SimpleAmqpClient/zip/maste…...
一台手机可以登录运营多少个TikTok账号?
很多TikTok内容创作者和商家通过运营多个账号来实现品牌曝光和产品销售,这种矩阵运营方式需要一定的技巧和设备成本,那么对于很多新手来说,一台手机可以登录和运营多少个TikTok账号呢? 一、运营TikTok账号的数量限制 TikTok的官…...
Python毕业设计选题:基于Hadoop的租房数据分析系统的设计与实现
开发语言:Python框架:flaskPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 系统首页 房屋信息详情 个人中心 管理员登录界面 管理员功能界面 用户管理界面 房屋信…...
k8s Service四层负载:服务端口暴露
在 Kubernetes 中,通过 Service 可以实现四层(L4)负载均衡,将流量分发至后端的 Pod。四层负载主要用于传输层(TCP/UDP),而不像七层负载均衡(HTTP/HTTPS)那样进行应用层的…...
QT 关于mousePressEvent无法过滤
QT 关于mousePressEvent无法过滤 bool Filter::eventFilter(QObject *watched, QEvent *event) {// 判断是不是点击事件if((event->type() QEvent::MouseButtonPress) || (event->type() QEvent::MouseButtonDblClick)){//打印一个全局变量static int globalVar 0;gl…...
【VScode】深度对比:Cursor与VScode(CodeMoss)工具,谁才是你的GPT编程最佳助手?
文章目录 一、Cursor的强大功能1.1 Cursor的主要特点1.2 Cursor的使用技巧 二、CodeMoss的功能2.1 CodeMoss的主要特点2.2 CodeMoss的使用技巧 三、Cursor与CodeMoss的对比分析3.1 功能对比3.2 性能对比 四、总结与展望 在科技迅猛发展的今天,AI编程工具如雨后春笋般…...
大数据计算里的-Runtime Filter
文章目录 Runtime Filter示例 Runtime Filter 从纸面意义来看,就是程序在运行时,根据实际的数据去进行一些过滤操作。这和静态的规则优化不同,静态优化不考虑实现的数据的分布。 示例 select a.* ,b.* a join b on a.idb.id假设一下数据…...
【工具变量】大数据管理机构改革DID(2007-2023年)
数据简介:数字ZF是指以新一代信息技术为支撑,重塑政务信息化管理架构、业务架构、技术架构的现代化治理模式。随着数字政府的建设,特别是借助大数据等新一代数字技术,极大地提升了政府的治理能力,从而起到辅助监管机构…...
Linux -- 初识信号
目录 什么是信号? 如何使用信号? 代码: testSig.cc makefile: 验证: 2号信号: 9号信号: 建立对信号的认识: 信号的处理 自定义信号的处理方式: signal 函数…...
Ubuntu系统如何实现键盘按键映射到其他按键(以 Ctrl+c 映射到 F3,Ctrl+v 映射到 F4 为例)
文章目录 写在前面1. 功能描述2. 实现步骤2.1 安装AutoKey2.2 软件设置2.2.1 软件设置 2.3 测试是否安装成功 参考链接 写在前面 自己的测试环境: Ubuntu20.04 1. 功能描述 Ubuntu系统使用Ctrlc 、Ctrlv 进行复制粘贴操作的时候,时间长了就会出现小拇指…...
el-select、el-autocomplete的选项内容过长显示完整内容
问题: el-select、el-autocomplete的选项内容过长需要看清完整内容 解决方案: 使用el-popover悬停显示完整内容 代码: <el-form-item label"备注" prop"remark"><el-autocomplete v-model"form.remar…...
Go-单元测试
单元测试 测试用例的命名必须是以xxx_test.go的格式 测试用例函数必须以TestXxx开头,一般来说是Test被测试函数名,且必须为大驼峰命名 TestAdd(t *tesing.T)的形参类型必须是*tesing.T 运行测试用例指令 cmd>go test 运行正确,无日志&a…...
如何用baidupankey工具实现百度网盘提取码10秒智能查询
如何用baidupankey工具实现百度网盘提取码10秒智能查询 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘分享链接的提取码而烦恼吗?每次遇到需要提取码的资源,都要在多个网站间来回搜索&a…...
如何用免费开源工具彻底解决Dell G15散热问题:3步终极控制方案
如何用免费开源工具彻底解决Dell G15散热问题:3步终极控制方案 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 你是否正在为Dell G15游戏本的散热问…...
【信息科学与工程学】计算机科学与自动化 第十篇 芯片设计04(5)
载流子统计与输运函数方程式详表 1. 载流子统计基础 (zailiu-1 ~ zailiu-100) 序号 名称 数学表达式/核心描述 参数说明 物理意义 应用场景 条件描述 zailiu-1 麦克斯韦-玻尔兹曼分布 f(E)=Ae−E/(kBT)或 f(v)=(2πkBTm)3/2e−mv2/(2kBT) E: 能量, v: 速度,…...
语音提示工程实战:从原理到应用,解锁AI声音表现力
1. 项目概述:语音提示工程的“Awesome”宝库如果你正在探索语音AI的应用,或者想为自己的智能助手、播客、有声书项目寻找更自然、更具表现力的声音,那么你很可能已经意识到一个核心痛点:如何用文字精准地“指挥”一个AI声音&#…...
电路设计效率革命:Draw.io电子工程库的专业绘图方案
电路设计效率革命:Draw.io电子工程库的专业绘图方案 【免费下载链接】Draw-io-ECE Custom-made draw.io-shapes - in the form of an importable library - for drawing circuits and conceptual drawings in draw.io. 项目地址: https://gitcode.com/gh_mirrors/…...
不止Keil5:VSCode+GCC也能玩转GD32单片机?手把手教你搭建轻量级开发环境
超越Keil5:用VSCodeGCC打造高效GD32开发环境 在嵌入式开发领域,Keil MDK长期以来一直是ARM架构单片机开发的主流选择。然而,随着现代开发工具的演进,越来越多的开发者开始寻求更轻量、更灵活且完全免费的替代方案。本文将带你探索…...
从化学结构到生物大分子:Ketcher的模块化绘图技术深度解析
从化学结构到生物大分子:Ketcher的模块化绘图技术深度解析 【免费下载链接】ketcher Web-based molecule sketcher 项目地址: https://gitcode.com/gh_mirrors/ke/ketcher Ketcher作为一款专业的Web分子编辑器,不仅支持基础化学结构绘制ÿ…...
3种实战方法深度解析:如何高效使用TrollInstallerX安装TrollStore越狱工具
3种实战方法深度解析:如何高效使用TrollInstallerX安装TrollStore越狱工具 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX TrollInstallerX是一款专为iOS 14…...
从句实战指南:从三大从句到地道英文写作
1. 从句的本质:让句子"活"起来的秘密武器 第一次接触英语从句时,我盯着课本上那句"That the earth is round is true"发呆了十分钟。主谓宾在哪?为什么that后面跟着完整句子?这种困惑持续到我发现从句就像乐高…...
STM32CubeMX配置I2C驱动ADS1115,从零开始实现高精度电压采集(附完整工程源码)
STM32CubeMX配置I2C驱动ADS1115:从零实现工业级电压采集系统 在嵌入式开发中,高精度模拟信号采集一直是工程师面临的挑战。当我们需要测量微弱电压信号或实现多通道同步采集时,STM32内置ADC往往难以满足精度要求。本文将手把手教你使用STM32C…...
