Q:
若scanf
后紧接着又有一个scanf
,如:
scanf("%d",&h);
scanf("%c",&c);
那么第二个scanf
会将上一个scanf
遗留在缓冲区的\n
放在c
中,如何解决上述问题呢?
S:
方法一:
利用getchar()
将\n
吸收
scanf("%d",&h);
getchar();
scanf("%c",&c);
方法二:
若两个输入是连续的可以直接用空格隔开
scanf("%d %c",&h,&c);
方法三:
从缓冲区跳过
scanf("%d",&h);
scanf("\n%c",&c);