getchar();吸收回车符
在进行如下代码时:
#include <stdio.h>
int main()
{int data;char cdata;printf("请输入一个整数:\n");scanf("%d",&data);switch(data){case 1:puts("满足条件1的情况");break;case 2:puts("满足条件2的情况");break;case 3:puts("满足条件3的情况");break;default:puts("其他情况");}printf("请输入一个字符:\n");scanf("%c",&cdata);switch(cdata){case 'a':puts("满足条件a的情况");break;case 'b':puts("满足条件b的情况");break;case 'c':puts("满足条件c的情况");break;default:puts("其他情况");}return 0;
}
其运行结果如下图所示:
未输入第二次,却显示了其运行结果。
分析其原因,是因为第一次scanf("%d",&data);输入后,回车没有被吸收,被放入到scanf("%c",&cdata);中。故需要将回车符吸收,即可进行第二次输入。代码进行如下修改:
printf("请输入一个字符:\n");getchar(); // 吸收回车符scanf("%c",&cdata);
其运行结果如下图所示:
getchar();吸收回车符相关推荐
- getchar消除回车符号
当程序中使用了scanf和getchar,通过键盘输入 "字符串" 后按 "回车",回车会保留在输入缓冲区中,这就会给程序造成影响,那怎么解决呢?我们通过函数g ...
- C语言字符输入回车时停止,解决C语言输入单个字符屏蔽回车符的问题
C语言的scanf()函数在接收输入单个字符时会把上一次输入的回车符号当做这次输入的字符,造成无法正确的输入字符数据.这恐怕是初学C的童鞋门遇到的最头疼的问题了. 今天给大家提供四种解决方法供借鉴. ...
- c语言——什么时候使用getchar()读取换行符
做题的时候有时会用到getchar()接收换行符,然而让人困惑的是一般使用scanf("%s", str)这样的形式读取字符串的时候似乎并没有考虑这个问题.网上通常会给你讲大道理缓 ...
- 输入一行字符,以回车符作为输入结束的标志。统计其中英文字母、数字字符和其他字符的个数。
题目描述: 输入 多个字符,以回车符结束,回车符不作为有效字符.有效字符个数不超过100. 输出输出分3行,格式见输出样例.样例输入 Abse 4+5*3=?样例输出 letter:4digit:3o ...
- c语言回车换行符的作用,C语言中回车符和回车换行符有什么区别
2016-08-12 15:35齐景坤 客户经理 C语言中的getchar, scanf, putchar, printf学习 [摘要:输进战输出功效并非C说话自身的构成局部,他们属于规范库局限,应用 ...
- c语言换行符不起作用,回车符与换行符问题——C语言
回车符(carriage return,'\r')与换行符 (line feed,'\n') 换行对应的ASCII码值是10,回车符对应的ASCII码值是13,需要注意的是用户按下回车键时,对于不同的 ...
- 关于scanf函数吃掉回车符四种办法
scanf()函数特点说明: scanf遇到空格.回车和Tab键都会认为输入结束,所有它不能接收空格. scanf对末尾回车符的处理:把回车符保留在缓存中. 1.在scanf()中使用'\n'屏蔽回车 ...
- sql移除数据中的换行符和回车符
–移除回车符 update master_location SET street_number = REPLACE(street_number, CHAR(13), ") –移除换行符 up ...
- 让word不显示计算机名作者,如何使word在其他电脑上也不显示回车符
如何让Word文档不显示回车符段落标记 word文档编辑中,开始对回车字符感觉没啥,时间久了,总觉得影响美观,虽然打印的时候不出现,但是影响编辑的视觉效果,想将其隐藏. 其实这只不过是给大家的一个类似 ...
最新文章
- Codeforces Round #366 (Div. 2)
- Fiddler抓包使用教程-会话图标
- 饥荒海难机器人怎么用_饥荒:海难是一款野外生存游戏
- C#上位机串口软件开发--第1讲 工程创建
- Python 实现链表和二叉树
- centos7日志文件_Shell 脚本自动监控重启 httpd 服务并记录日志
- C++ 指针基本概念
- [archlinux][hardware] 查看SSD的使用寿命
- Flume安装(单节点)
- 工厂方法模式--简单试例
- React的学习曲线
- Java学习笔记-12.传递和返回对象
- 智慧小区云平台解决方案
- 英语水平测试项目(黄军威、殷乐乐、张益维20180531)
- Eclipese快捷键
- 如何使用$.message
- 华为云PaaS平台微服务治理5云容器引擎CCE
- SMT生产线的组成及分类-专题
- 群体智能仿真之简单蚁群算法
- jsp基础之--使用Session完成简单的登陆操作