scanf输入abc[回车]后,遇到回车结束,但是回车还留在输入流中。下一个scanf在输入前碰到回车,会自动把回车抛弃,然后输入efg,再碰到回车后结束。
所以,你加了getchar时,它会吃一个回车,如果不加,就会自动删除这个回车,所以结果是一样的。
就是说,空格,回车,跳格等结束符在输入前碰到的话,会自动抛弃,输入后碰到的话,就会认为结束
以上是针对除了%c而言的
对于%c,遇到这些字符都会读取的。
若scanf(“%c”,&i);
scanf(“%c”,&j);
输入a[回车]b的话
就会使i=a,j=回车
但如果中间加上getchar
就是i=a,j=b
所以一般用getchar来吃回车时,是用在%c后面
(我是这么理解的,因为最近做题也是碰到这些问题,所以自己查了资料问了老师。望采纳,若有不对的地方,欢迎指出 (ง •̀灬•́)ง)
作者:蘑蘑菇
链接:https://www.zhihu.com/question/29130819/answer/248134253
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。