C语言关于getchar()的小笔记
#include <windows.h>
#include <mmsystem.h>
#include <string.h> void main()
{
int a;
char b;
float c;
printf("please input an integer:");
scanf("%d", &a);
printf("integer:%d\n", a);
printf("please input an character:");
getchar();/*将缓冲区的回车读走,如没有getchar(),scanf("%c",&b)会把回车读走,从而不能顺利输入字符型,scanf在读取字符型时需要区别对待,
因为它会读走回车,要加入getchar(),读取其他整型和float等类型时不用*/
scanf("%c", &b);
printf("character:%c\n", b);
printf("please input a float number:");
scanf("%f", &c);
printf("float:%f\n", c);
}
有getchar():的运行结果

没加入getchar():运行到输入字符串阶段发现是直接跳过的,因为scanf("%c",b)直接读取了缓冲区中的回车换行符(因为上一步我输入了12和回车换行符,12被 scanf("%d",&a);读走,所以只剩下回车换行符)
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a;
char b;
float c;
printf("please input an integer:");
scanf("%d",&a);
printf("integer:%d\n",a);
printf("please input an character:");
scanf("%c",&b);
printf("character:%c\n",b) ;
printf("please input a float number:");
scanf("%f",&c);
printf("float:%f\n",c) ;
}

不用getchar()的解决方法,在 scanf(" %c",&b);“即%号前加个空格,他的意义是自动忽略空白字符,包括回车换行,tab,空格键这些”
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a;
char b;
float c;
printf("please input an integer:");
scanf("%d",&a);
printf("integer:%d\n",a);
printf("please input an character:");
scanf(" %c",&b);
printf("character:%c\n",b) ;
printf("please input a float number:");
scanf("%f",&c);
printf("float:%f\n",c) ;
}
-----------------------------------------------------------------------------------------------------------------------------
相比较之下,我比较喜欢C++,不用考虑这些东西,下面是C++代码:
// Note:Your choice is C++ IDE
#include <iostream>
using namespace std;
int main()
{
int a;
char b;
float c;
cout<<"please input an integer:";
cin>>a;
cout<<"integer:"<<a<<endl;
cout<<"please input an character:";
cin>>b;
cout<<"character:"<<b<<endl ;
cout<<"please input a float number:";
cin>>c;
cout<<"float:%f\n"<<c<<endl ;
/* return 0;*/
}

scanf(" %c",&b);
C语言关于getchar()的小笔记的更多相关文章
- C语言中的调试小技巧
C语言中的调试小技巧 经常看到有人介绍一些IDE或者像gdb这样的调试器的很高级的调试功能,也听人说过有些牛人做工程的时候就用printf来调试,不用特殊的调试器.特别是在代码经过编译器一些比较复杂的 ...
- 转:【iOS开发每日小笔记(十一)】iOS8更新留下的“坑” NSAttributedString设置下划线 NSUnderlineStyleAttributeName 属性必须为NSNumber
http://www.bubuko.com/infodetail-382485.html 标签:des class style 代码 html 使用 问题 文件 数据 ...
- 小笔记:Timer定时间隔时间操作
小笔记:Timer定时间隔时间操作,后面有时间再补充和完善: public class TimingSvc { /// <summary> /// 定时器,执行定时任务 /// </ ...
- 关于 linux中TCP数据包(SKB)序列号的小笔记
关于 SKB序列号的小笔记 为了修改TCP协议,现在遇到了要改动tcp分组的序列号,但是只是在tcp_sendmsg函数中找到了SKB的end_seq 一直没有找到seq 不清楚在那里初始化了,就 ...
- Linux下postgres9.4 版本的单机版安装小笔记
1.添加RPMyum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-redha ...
- 打码(C语言)常见粗心小错误 (前方高能,一定要点)
打码(C语言)常见粗心小错误 标签(空格分隔): 博客 自我介绍 本人学院 (http://sdcs.sysu.edu.cn/) 欢迎访问 本人学号 16340213 目录 打码C语言常见粗心小错误 ...
- C语言小笔记
头文件的书写 头文件实现函数声明,在使用模板后可以实现一个C文件中即使重复包含某个头文件,在系统中用于只会确认为一个包含 头文件包含可以理解为将头文件内容替换#include“...”行 模板(don ...
- C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目
C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...
- Go语言阅读小笔记,来自知呼达达关于unsafe.Pointer的分享.
第一式 - 获得Slice和String的内存数据 func stringPointer(s string) unsafe.Pointer { p := (*reflect.StringHeader) ...
随机推荐
- 数据库中间件分片算法之enum
前言 最近挺焦虑的,不知道未来该做什么,方向又是什么.只能用别慌,月亮也正在大海的某处迷茫.来安慰下自己.不过学习的初心咱们还是不要忘记.今天我们学习的是enum分片算法. 1.hash分区算法 2. ...
- 查找2-n之间素数的个数
题目描述 查找2-n之间素数的个数.n为用户输入值.素数:一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除,就叫素数.如2,3,5,7,11,13,17…. 输入 整数n 输出 2-n ...
- 【转】经典的SQL语句面试题
Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表 问题: 1 ...
- js提取JSON数据中需要的那部分数据
var data =[ { name: "程咬金",sex:"1",age:26 }, { name: "程才",sex:"0&q ...
- pc和H5响应式方案
pc响应式:(所有应用在pc端) 解决方案1.媒体查询 2.flex,百分比 3.栅格布局 媒体查询 @media screen and (max-width:768px) @media scree ...
- 灵魂画师,在线科普多云平台/CMP云管平台/中间件/虚拟化/容器是个啥
原创: 灵魂工作室 速石科技 经常碰到有人问: 你们是云管吗? 你们和CMP多云管理平台有什么区别? 你们这个多云平台到底是个啥? emmmmm,问题还挺不好回答. 为了说清楚这些问题,但又不希望你们 ...
- 用来更新服务的bat 脚本
net stop XK.Service echo "已停止服务,开始更新!" set /a t = echo %t% :loop 127.1 >nul set /a t = ...
- android:整理drawable(shapdrawable)(二)
前言 bitmapdrawable 与nithpathdrawable 完结,接下来是shapedrawable. shapedrawable是使用频率最高的drawable 可见其重要性. shap ...
- 《深入浅出话数据结构》系列之什么是B树、B+树?为什么二叉查找树不行?
本文将为大家介绍B树和B+树,首先介绍了B树的应用场景,为什么需要B树:然后介绍了B树的查询和插入过程:最后谈了B+树针对B树的改进. 在谈B树之前,先说一下B树所针对的应用场景.那么B树是用来做什么 ...
- 【C_Language】---常用C语言控制台函数总结(持续更新)
写了这么久的C程序,每次看到输出的结果都是从上往下排列的黑白框,有没有感觉很无聊啊?今天再次总结一个常用的控制台函数,能够帮助你做好一个好看的界面. 1.设置光标位置代码如下: int main(vo ...