getchar 與scanf 的理解

2021-08-25 08:13:51 字數 648 閱讀 1247

1.getchar()是將輸入的字元都存到緩衝區中,直到輸入回車(將回車也存到緩衝區中)才讀取緩衝區中的字元,而且若輸入了多個字元到緩衝區中,後面的字元不用按回車便會依次讀取到後序的getchar()中。

2.scanf()的程式片段如下:

char a, b, c, d;

scanf("%c", &a);

scanf("%c", &b);

scanf("%c", &c);

scanf("%c", &d);

printf("%c %c %c %c", a, b, c, d);

輸出如下:

可以看到,scanf("%c", &a);只接受乙個字元,a後面的空格被b接收了,所以類似上述輸入字元的程式片段要注意,不需要在中間輸入其他的空白字元(回車和空格)來間隔他們。而輸入int時,要輸入空白字元來間隔。

3.在scanf("%c", &a)這樣的語句前後,如果要輸入空白字元,則一定要在後面加上getchar()來吃掉空白字元

scanf 與getchar 區別的總結

第一 要注意不同的函式是否接受空格符 是否捨棄最後的回車符的問題 讀取字元時 scanf 以space enter tab結束一次輸入,不會捨棄最後的回車符 即回車符會殘留在緩衝區中 getchar 以enter結束輸入,也不會捨棄最後的回車符 讀取字串時 scanf 以space enter ta...

關於getchar 與scanf 的用法總結

首先getchar 函式是輸入乙個字元,通常採用此函式將scanf 未處理的量進行釋放 char a,b 比如 scanf c a scanf c b printf a c,b c n a,b 此時你想讓a 1,b 2 你會這樣輸入1enter鍵加2加enter鍵 此時你會發現b的值為空,那是因為s...

getchar()和scanf()的區別

大多數人只看getchar 名字,以為其返回值是char 型別。但是getchar 的確不是char 型別,而是int 型別,其原型如下 int getchar void getchar有乙個int型的返回值.當程式呼叫getchar時.程式就等著使用者按鍵.使用者輸入的字元被存放在鍵盤緩衝區中.直...