scanf()函数和回车的处理

简介: scanf()函数和回车的处理

c语言中在读取键盘数据时,一般是带缓存的数据输入,需要按回车键才能完成该“行”数据的输入确认。


而 scanf()函数对这个回车确认符并不进行处理,回车符会留在输入缓存区中。


因此,在下一个读“字符”操作函数(getchar, scanf("%c"), gets()等)运行时,会读到这个字符。


而在读数值型数据或字符串时,scanf()会从第一个非空白字符(空白字符指:回车,空格,TAB键)开始读取,自动忽略前面的空白字符,而遇到空白字符结束该类型数据的输入。


因此,是否一定要在scanf后面跟个 getchar吃回车,要看下一个输入的数据类型是什么,如果是读字符类操作,处理办法有多种方式:


一、用fflush(stdin)命令强行刷新输入缓存,丢弃输入缓存中的数据,此种方法在windows下使用有效,linux无效。


char ch;

fflush(stdin); //不管缓存中有没有数据,强行清除

ch=getchar(); //这里会等待用户输入一个字符


二、前面有读数据操作,现在要执行读字符操作,则可用getchar()来吃掉前面的回车确认


int i;

char ch;

scanf("%d", &i ); //读一个整数,回车确认

getchar(); //先吃掉回车确认符,这两句,效果同下一方法的那一句

ch=getchar(); //这里会等待用户输入一个字符


三、在scanf()书写上做文章,如:读一个数据,以回车确认,则输写成如下格式


int i;

char ch;

scanf("%d%*c", &i ); //%*c表示读一个字符,并不赋值给任何变量

ch=getchar(); //这里不会读到回车符


相关文章
|
缓存 关系型数据库 MySQL
MySQL慢查询优化策略
MySQL慢查询优化是一个复杂的过程,需要根据具体的应用场景和数据特点进行。以上策略是提升数据库查询性能的有效途径,但最关键的是对系统进行持续的监控和分析,及时发现并解决性能瓶颈。通过实践这些策略,你可以显著提高MySQL数据库的性能,为用户提供更快的响应时间和更好的体验。
488 10
|
8月前
|
JSON API 数据格式
淘宝商品评论API接口,json数据示例参考
淘宝开放平台提供了多种API接口来获取商品评论数据,其中taobao.item.reviews.get是一个常用的接口,用于获取指定商品的评论信息。以下是关于该接口的详细介绍和使用方法:
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
2025年AI客服机器人推荐:核心能力与实际场景应用分析
据《2024年全球客户服务机器人行业研究报告》预测,2025年全球AI客服机器人市场规模将超500亿美元,年复合增长率达25%以上。文章分析了主流AI客服机器人,如合力亿捷等服务商的核心功能、适用场景及差异化优势,并提出选型标准,包括自然语言处理能力、机器学习能力、多模态交互能力等技术层面考量,以及行业适配性、集成能力、数据安全、可定制化程度和成本效益等企业维度评估。
705 12
|
关系型数据库 MySQL 数据库
mysql的用户管理和权限控制
本文介绍了MySQL中用户管理的基本操作,包括创建用户、修改密码、删除用户、查询权限、授予权限和撤销权限的方法。
506 2
|
运维 负载均衡 监控
提升系统性能:高效运维的秘密武器——负载均衡技术
在当今数字化时代,系统的高可用性和高性能成为各类企业和组织追求的目标。本文旨在探讨负载均衡技术在运维工作中的关键作用,通过深入分析其原理、类型及实际应用案例,揭示如何利用这项技术优化资源分配,提高系统的响应速度和可靠性,确保用户体验的稳定与流畅。无论是面对突如其来的高流量冲击,还是日常的运维管理,负载均衡都展现出了不可或缺的重要性,成为现代IT架构中的基石之一。
739 4
|
存储 Prometheus 监控
监控堆外第三方监控工具Prometheus
监控堆外第三方监控工具Prometheus
370 3
|
数据可视化 Python
Python中的数据可视化:使用Matplotlib绘制图表
【9月更文挑战第11天】在这篇文章中,我们将探索如何使用Python的Matplotlib库来创建各种数据可视化。我们将从基本的折线图开始,然后逐步介绍如何添加更多的功能和样式,以使您的图表更具吸引力和信息量。无论您是数据科学家、分析师还是任何需要将数据转化为视觉形式的专业人士,这篇文章都将为您提供一个坚实的起点。让我们一起潜入数据的海洋,用视觉的力量揭示其背后的故事。
278 17
|
数据采集 监控 供应链
食品制造行业MES系统解决方案 
介绍食品制造业如何使用mes
遇到Error saving license data.C:\Users|yyh\idea.key(拒绝访问。) CORP\AppDatalRoamingVetBrainslIntellilldea20的解决思路
今日进行云桌面迁移后,发现已激活的IDEA软件失效,并且每次启动都需要重新激活,极为不便。经过一番调查与尝试多种解决方案后,最终通过第4种方法解决了问题:先进入特定设置界面移除原有激活信息,再重新输入激活码完成激活过程,从而确保下次启动不再需要重复激活步骤。
|
数据采集 JSON API
淘宝商品评论数据采集教程丨淘宝商品评论数据接口Taobao.item_review
`淘宝开放平台的Taobao.item_review API让开发者能获取商品评论。步骤包括注册开发者账号,创建应用获取API密钥,理解和使用请求参数,签名验证并发送HTTP请求。返回的JSON数据包含评论详情,需解析并清洗后分析。注意频率限制和用户隐私保护。此接口助力商家分析用户反馈,优化经营策略。`