C语言中scanf()缓冲区问题。
char a,b;
scanf(“%c”,&a);
scanf(“%c”,&b);
printf(“%c”,&b);
当输入: m
n
时,输出的并不是n。原因是输入m时,回车确定,回车字符会存入缓冲区内,当我们再输入n,并打印b时,其实是打印的回车字符。
解决办法是在scanf(“%c”,&b);前加一句getchar(),把缓冲区的换行字符释放。
char a,b;
scanf(“%c”,&a);
scanf(“%c”,&b);
printf(“%c”,&b);
当输入: m
n
时,输出的并不是n。原因是输入m时,回车确定,回车字符会存入缓冲区内,当我们再输入n,并打印b时,其实是打印的回车字符。
解决办法是在scanf(“%c”,&b);前加一句getchar(),把缓冲区的换行字符释放。