c語言中的getchar 和putchar

2021-07-15 02:55:56 字數 1138 閱讀 9574

getchar()和putchar()函式時字元輸入輸出函式,其返回值都是int 整型。

getchar()從鍵盤上輸入乙個字元,函式的返回值是輸入的第乙個字元的ascii碼字元的ascii值,若出錯返回-1,且將使用者輸入的字元回顯到螢幕。

注意:(1)使用者在按回車之前輸入了不止乙個字元,其他字元會保留在鍵盤快取區中,等待後續getchar呼叫讀取.也就是說,後續的getchar呼叫不會等待使用者按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵

(2)getchar()函式也將回車鍵作為乙個回車符讀入,要注意在連續輸入兩個字元時要注意回車符。

(3)當程式呼叫getchar時.程式就等著使用者按鍵.使用者輸入的字元被存放在鍵盤緩衝區中.直到使用者按回車為止(回車字元也放在緩衝區中).當使用者鍵入回車之後,getchar才開始從stdio流中每次讀入乙個字元.

(4).執行getchar()輸入字元,鍵入字元後需要按回車鍵,回車後程式才會響應輸入,繼續執行後續語句。

int  c = 0;

while ((c = getchar())!=eof &&c!='\n')

上述程式getchar()函式獲取當前控制台的輸入,直到按回車鍵結束,並將其輸出。

若果將其printf(「%c」,c); 換成printf(「%d」,c); 就會輸出其字元的ascii碼值。

getchar()函式從標準輸入讀取乙個字元並返回它的值。如果輸入中不在存在任何字元,函式就會返回常量eof,用於提示檔案的結尾。

從getchar()函式返回的值唄賦給變數c,然後把它與eof比較。在賦值表示式兩端加上括號用於確保賦值操作優先於比較操作。如果c等於eof,整個表示式的值為假,整個表示式的值就為假,迴圈將終止。如果不是這樣,再把c與換行符比較,如果兩者相等,迴圈也將終止。

乙個問題:c為什麼被宣告成整型,而事實上需要它來讀取字元?

因為eof是乙個整型值,它的位數比字元型別要多,把c宣告為整型可以防止從輸入讀取的字元意外的被解釋為eof(如果c宣告為char型別,字元c接收 getchar 等函式的返回值會導致對 eof 的辨認出錯,或者錯把好的資料誤認為是 eof,或者把 eof 誤認為是好的資料。) 字元只是乙個小整型數,用int型別類容納字元型別 並不會出現問題,相反,就可能出現資料截斷問題。

C語言中的getchar和putchar詳解

首先給出 the c programming language 這本書中的例子 include int main return 0 這裡主要解釋下為什麼要用int型來接受getchar函式。很多時候,我們會寫這樣的兩行 char c c getchar 這樣就很有可能出現問題。因為getchar函式...

C語言中的getchar和putchar詳解

一 首先給出 the c programming language 這本書中的例子 include int main return 0 這裡主要解釋下為什麼要用int型來接受getchar函式。很多時候,我們會寫這樣的兩行 char c c getchar 這樣就很有可能出現問題。因為getchar...

c語言中的getchar 和EOF

一 getchar的兩點總結 1.getchar是以行為單位進行訪問的。當用getchar進行輸入時,如果輸入的第乙個字元為有效字元 即輸入是檔案結束符eof,windows下為組合鍵ctrl z,unix linux下為組合鍵ctrl d 那麼只有當最後乙個輸入字元為換行符 n 也可以是檔案結束符...