C語言scanf()與getchar()解析
阿新 • • 發佈:2022-11-29
scanf()
函式會根據引數中的轉義說明獲取對應的值的型別,在獲取值的時候會自動跳過前面的若干空格、製表符以及換行符(\n),如下圖所示。
scanf()只會獲取第一個符合轉移說明的值,如果沒有獲取到那麼原本輸入佇列中的值不會改變,仍舊在輸入佇列中。
scanf()只會回去1,而剩下的abc仍舊儲存在輸入佇列,被後面的getchar()獲取
getchar()
getchar()會獲取字元,包括空格、製表符換行符等等。
當輸入1的時候按下enter鍵表示輸入完成,由於我們是行緩衝,所以再按下enter的時候會將鍵盤緩衝送入輸入佇列,然後scnaf()去掉空白,並讀入一個1,但是此時輸入佇列中還剩下一個換行符,繼而被下面的getchar()獲取。
scanf("%*s")