浅谈getchar()以及scanf读取字符时的易错点

 写一段这样的代码
浅谈getchar()以及scanf读取字符时的易错点
当键入一个字符如a,然后回车,我们看看输出结果

浅谈getchar()以及scanf读取字符时的易错点
我们会疑惑,为什么我还没有输入下一个字符 就结束了...       其实当你输入a,按下enter时你就输入了一个换行符。

 所以为了避免这一种情况,我们可以直接键入两个字符再按enter就ok了。

下面我们谈谈scanf(“%c”,...)的易错点
浅谈getchar()以及scanf读取字符时的易错点
 在这个程序里我们感觉并没有输入字符,事实上跟之前类似输入整数后 按下enter就相当于输入了换行符。
我们应该怎样避免scanf读入字符型数据时读入空格,回车符这些空白字符呢?

下面介绍两种方法:
一,在scanf("%c",...);中的%前键入空格,这个空格会忽略缓冲区中的空白字符(回车,空格,tab)。
二,在读入字符型数据前插入一句getchar()这样就可以把之前的空白字符读走。