我们在控制台给scanf()输入完后要按下回车键确认以继续执行,
然而这个回车键也会留在输入缓存区,
当scanf()把指定的字符取走后就会留下'\n'字符。
如果程序继续往下执行到下一个scanf()或getchar()时,就有可能获取到‘\n’字符,
之所以所“有可能”,是因为当scanf()想要获取%c时会获取‘\n’换行字符,
而如果是'%s'、‘%d’、‘%f’等非字符格式想要获取时,就会忽略无效的字符,‘\n就会被忽略掉了。
所以只有scanf("%c", &c);后到下一个scanf()之前要清空输入缓存区,
使用getchar();、fflush(stdin);、setbuf(stdin,NULL);等函数达到清空缓存区的目的(注意有些函数某些平台上无效!);