一、首先給出《The_C_Programming_Language》這本書中的例子: #include <stdio.h>
int main( ) { int c; c = getchar(); while (c != EOF) { putchar(); c= getchar(); } return 0; }
這裡主要解釋下為什麼要用int型來接受getchar函數。 很多時候,我們會寫這樣的兩行代碼: char c; c = getchar(); 這樣就很有可能出現問題。因為getchar函數除了傳回終端輸入的字元外,在遇到Ctrl+D(Linux下)即檔案結束符EOF時,getchar ()的傳回EOF,這個EOF在函數庫裡一般定義為-1。 是以,在這種情況下,getchar函數傳回一個負值,把一個負值賦給一個char型的變量是不符合邏輯的。
二、注意事項 1) 用getchar讀入時,如果不按回車符,所有輸入會放入緩沖區,而不會被讀入。 2) 最後按下的Enter鍵,雖是用來告訴系統輸入已結束,但同時也會作為一個字元放入緩沖區。