回覆列表
  • 1 # 弌94922977

    getchar: C標準庫提供的輸入輸出模型,都是按照字元流的方式處理 getchar()是最簡單的一次讀一個字元的函式,每次呼叫時從文字流中讀入下一個字元,並將其作為結果值返回。 但是,注意的是,返回值是int型!即:

    因為,在沒有輸入或者輸入字元有錯的時候,getchar()函式將返回一個特殊值,這個特殊值與任何實際字元都不同,稱為EOF(end of file,檔案結束)。EOF是定義在標頭檔案 是正確的! 當程式呼叫getchar()時,程式就等著使用者按鍵。使用者輸入的字元被存放在鍵盤緩衝區中,直到使用者按回車為止(回車字元也放在緩衝區中)。 當用戶鍵入回車之後,getchar()才開始從輸入流中每次讀入一個字元,getchar()函式的返回值是使用者輸入的第一個字元的ASCII碼,如出錯返回EOF。如使用者在按回車之前輸入了不止一個字元,其他字元會保留在鍵盤快取區中,,待後續getchar()呼叫讀取。也就是說,後續的getchar()呼叫不會等待使用者按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵。 getch與getchar的基本功能相同,不同就在於getch(所在標頭檔案:conio.h)不等待回車,只要按下按鍵就會返回該鍵字元所對應的ASCII碼。輸入字元不回顯。 Q:getchar()!=EOF的值? Q:EOF的值? 結果: getchar()!=EOF的值為1; EOF=-1; ctr-D:是一個特殊的二進位制值,表示 EOF。 ct-Z:中斷命令。 從緩衝區讀走一個字元,相當於清除緩衝區 2.前面的scanf()在讀取輸入時會在緩衝區中留下一個字元"\n"(輸入完s[i]的值後按回車鍵所致),所以如果不在此加一個getchar()把這個回車符取走的話,gets()就不會等待從鍵盤鍵入字元,而是會直接取走這個“無用的”回車符,從而導致讀取有誤 3. getchar()是在輸入緩衝區順序讀入一個字元(包括空格、回車和Tab) getchar()使用不方便,解決方法: (1)使用下面的語句清除回車: (2)用getche()或getch()代替getchar(),其作用是從鍵盤讀入一個字元(不用按回車),注意要包含標頭檔案<conio.h>

  • 中秋節和大豐收的關聯?
  • entp型人格的女性適合哪些專業和擅長哪些能力?