共找到2條詞條名為getchar的結果 展開

getchar

計算機語言函數

getchar是讀入函數的一種。它從標準輸入里讀取下一個字元,相當於getc(stdin)。返回類型為int型,為用戶輸入的ASCII碼或EOF

介紹


().庫函,流讀符,,據輸讀取,調(),確需輸,輸符,()執緩衝區讀取。

描述


 庫函 (void)從標準輸入 stdin 獲取一個字元(一個無符號字元)。這等同於getc帶有 stdin 作為參數。

聲明


 () 函。
1int getchar(void)

參數


● NA

返回值


該函數以無符號 char 強制轉換為 int 的形式返回讀取的字元,如果到達文件末尾或發生讀錯誤,則返回 EOF。

函數內容


1
2
3
4
5
6
7
8
9
10
11
12
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頭文件。如:
1
2
#include
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與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個鍵,getch就立刻返回,getch返回值是用戶輸入的ASCⅡ碼,出錯返回-1。輸入的字元不會回顯在屏幕上.getch函數常用於程序調試中,在調試時,在關鍵位置顯示有關的結果以待查看,然後用getch函數暫停程序運行,當按任意鍵后程序繼續運行。
這個版本忽略了個重點,getch()是非緩衝輸入函數,就是不能用getch()來接受緩衝區已存在的字元,如以下C++程序段,運行時如果輸入1 2 3 a時必須用getchar()才能在後面程序獲得正常輸入,即使先前已經恢複流了,此處用getch()是不行的。
1
2
3
4
int i;
while(cin>>i);
cin.clear();
getchar();
getche
這個函數與前兩上類似,功能也相近,都是輸入一個字元,返回值同樣是輸入字元的ASCII碼,但不同的是,此函數在輸入后立即從控制台取字元,不以回車為結束(帶回顯)。

實例

編輯
下面的實例演示了 getchar() 函數的用法。
1
2
3
4
5
6
7
8
#include int main (){
char c;
printf("請輸入字元:");
c = getchar();
printf("輸入的字元:");
putchar(c);
return(0);
}
編譯並運行上面的程序,這將產生以下結果:
1
2
請輸入字元:a
輸入的字元:a