getchar是讀入函式的一種。它從標準輸入里讀取下一個字元,相當於getc(stdin)。返回類型為int型,為用戶輸入的ASCII碼或EOF。
基本介紹
- 外文名:getchar
- 返回值類型:int
- 返回值:ASCII碼
- 作用:讀取字元
介紹,描述,聲明,參數,返回值,函式內容,用法,註解,getchar,getch,getche,實例,
介紹
getchar()是stdio.h中的庫函式,它的作用是從stdin流中讀入一個字元,也就是說,如果stdin有數據的話不用輸入它就可以直接讀取了,第一次調用getchar()時,確實需要人工的輸入,但是如果你輸了多個字元,以後的getchar()再執行時就會直接從緩衝區中讀取了。
描述
C 庫函式int getchar(void)從標準輸入 stdin 獲取一個字元(一個無符號字元)。這等同於getc帶有 stdin 作為參數。
聲明
下面是 getchar() 函式的聲明。
int getchar(void)
參數
- NA
返回值
該函式以無符號 char 強制轉換為 int 的形式返回讀取的字元,如果到達檔案末尾或發生讀錯誤,則返回 EOF。
函式內容
int getchar(void){ static char buf[BUFSIZ]; static char* bb=buf; static int n=0; if(n==0) { n=read(0,buf,BUFSIZ); bb=buf; } return (--n>=0)?(unsigned char)*bb++:EOF;}
用法
該函式聲明在stdio.h頭檔案中,使用的時候要包含stdio.h頭檔案。如:
#include<stdio.h>int getchar(void);
註解
getchar
getchar可用宏實現:#define getchar() getc(stdin)。getchar有一個int型的返回值。當程式調用getchar時.程式就等著用戶按鍵。用戶輸入的字元被存放在鍵盤緩衝區中。直到用戶按回車為止(回車字元也放在緩衝區中)。當用戶鍵入回車之後,getchar才開始從stdin流中每次讀入一個字元。getchar函式的返回值是用戶輸入的字元的ASCII碼,若檔案結尾(End-Of-File)則返回-1(EOF),且將用戶輸入的字元回顯到螢幕。如用戶在按回車之前輸入了不止一個字元,其他字元會保留在鍵盤快取區中,等待後續getchar調用讀取。也就是說,後續的getchar調用不會等待用戶按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完後,才等待用戶按鍵。
getch
這個版本忽略了個重點,getch()是非緩衝輸入函式,就是不能用getch()來接受緩衝區已存在的字元,如以下C++程式段,運行時如果輸入1 2 3 a時必須用getchar()才能在後面程式獲得正常輸入,即使先前已經恢複流了,此處用getch()是不行的。
int i;while(cin>>i);cin.clear();getchar();
getche
這個函式與前兩上類似,功能也相近,都是輸入一個字元,返回值同樣是輸入字元的ASCII碼,但不同的是,此函式在輸入後立即從控制台取字元,不以回車為結束(帶回顯)。
實例
下面的實例演示了 getchar() 函式的用法。
#include <stdio.h>int main (){ char c; printf("請輸入字元:"); c = getchar(); printf("輸入的字元:"); putchar(c); return(0); }
編譯並運行上面的程式,這將產生以下結果:
請輸入字元:a輸入的字元:a