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
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。