首先我们需要了解缓冲区缓冲区可以简单理解为一个盒子,他会把键盘输入的东西暂时储存但但输入文字之后,我们需要一个回车键用来执行,所以缓冲区会出现一个\n比如我们输入Abcd
然后我们的scanf会读取缓冲区里你键盘上所写的东西,但它会默认取消掉\n所以scanf会取出Abcd,但需要注意的是,如果中间有空格的话,会直接将空格前面的东西提取。如图
他只会拿走Abcd。
而关于getchar关于这个他会直接读取所有的数据,就是说如果是Abcd\n的话,因为前面scanf拿走了Abcd,getchar会将\n的拿走,所以我们前面就需要放一个getchar()!= \n去拿走那个斜杠n