天天看點

關于getchar()

一、首先給出《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鍵,雖是用來告訴系統輸入已結束,但同時也會作為一個字元放入緩沖區。

繼續閱讀