1,当执行scanf函数的时候,并不是直接让我们从键盘中输入的,而是先检查缓冲区中是否有数据,如果有数据才会从缓冲区中取,如果没有数据,才会让我们输入.
2,当我们输入数据的时候,我们输入的数据并不是直接赋给scanf指定的变量,而是先存储到我们的缓冲区,scanf函数再在从缓冲区取数据.
3,如果取出的是数字,整数或者小数,缓存区的空格,tab,回车就会自动被忽略,如果要拿的是一个char数据,他就不会放过任何一个数据!
4,这个时候就会造成一个后果,如果缓冲区中有数据,而我要接收一个char类型的数据,它就有可能不会让我输入
5,解决方案: 在输入字符之前,将缓冲区中的数据全部清空.
rewind(stdin);