scanf接收回车一般是发生在输入字符型变量时才会发生的,在输入数字变量时回车则不会被接收,因为回车是一种字符(‘\n’),所以使用scanf函数时,输入回车会被当成字符接收。
当需要连续输入两个字符时,由于中间要输入回车导致回车键传给第二个变量,如下
scanf("%c",&a,&b);
变量b会接收回车。
解决办法:
①穿插使用getchar()函数,让getchar函数来接收回车
例如:
scanf("%c",&a);
getchar();
scanf("%c",&b);
②在scanf中加入%*c,%*c表示不输入该字符,常用%*c来吃掉回车
例如:
scanf("%c%*c%c",&a,&b);
注意:%*c是不接受变量,所以尽管有三个%c也不需要再创建一个字符变量来匹配%*c。