複製鏈接
請複製以下鏈接發送給好友

getchar

(計算機語言函數)

鎖定
getchar是讀入函數的一種。它從標準輸入裏讀取下一個字符,相當於getc(stdin)。返回類型為int型,為用户輸入的ASCII碼或EOF。
外文名
getchar
返回值類型
int
返回值
ASCII碼
作    用
讀取字符
屬    性
讀入函數
關聯函數
getch

getchar介紹

getchar()是stdio.h中的庫函數,它的作用是從stdin流中讀入一個字符,也就是説,如果stdin有數據的話不用輸入它就可以直接讀取了,第一次調用getchar()時,確實需要人工的輸入,但是如果你輸了多個字符,以後的getchar()再執行時就會直接從緩衝區中讀取了 [1] 

getchar描述

C 庫函數int getchar(void)從標準輸入 stdin 獲取一個字符(一個無符號字符)。這等同於getc帶有 stdin 作為參數。

getchar聲明

下面是 getchar() 函數的聲明。
int getchar(void)

getchar參數

  • NA

getchar返回值

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

getchar函數內容

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;
}

getchar用法

該函數聲明在stdio.h頭文件中,使用的時候要包含stdio.h頭文件。如:
#include<stdio.h>
int getchar(void);

getchar註解

getchargetchar

getchar可用宏實現:#define getchar() getc(stdin)。getchar有一個int型的返回值。當程序調用getchar時.程序就等着用户按鍵。用户輸入的字符被存放在鍵盤緩衝區中。直到用户按回車為止(回車字符也放在緩衝區中)。當用户鍵入回車之後,getchar才開始從stdin流中每次讀入一個字符。getchar函數的返回值是用户輸入的字符的ASCII碼,若文件結尾(End-Of-File)則返回-1(EOF),且將用户輸入的字符回顯到屏幕。如用户在按回車之前輸入了不止一個字符,其他字符會保留在鍵盤緩存區中,等待後續getchar調用讀取。也就是説,後續的getchar調用不會等待用户按鍵,而直接讀取緩衝區中的字符,直到緩衝區中的字符讀完後,才等待用户按鍵。

getchargetch

getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用户按回車,只要用户按一個鍵,getch就立刻返回,getch返回值是用户輸入的ASCⅡ碼,出錯返回-1。輸入的字符不會回顯在屏幕上.getch函數常用於程序調試中,在調試時,在關鍵位置顯示有關的結果以待查看,然後用getch函數暫停程序運行,當按任意鍵後程序繼續運行。
這個版本忽略了個重點,getch()是非緩衝輸入函數,就是不能用getch()來接受緩衝區已存在的字符,如以下C++程序段,運行時如果輸入1 2 3 a時必須用getchar()才能在後面程序獲得正常輸入,即使先前已經恢復流了,此處用getch()是不行的。
int i;
while(cin>>i);
cin.clear();
getchar();

getchargetche

這個函數與前兩上類似,功能也相近,都是輸入一個字符,返回值同樣是輸入字符的ASCII碼,但不同的是,此函數在輸入後立即從控制枱取字符,不以回車為結束(帶回顯)。

getchar實例

下面的實例演示了 getchar() 函數的用法。
#include <stdio.h>
int main (){
   char c;    
     printf("請輸入字符:");
     c = getchar();  
     printf("輸入的字符:");   
     putchar(c);   
  return(0);
  }
編譯並運行上面的程序,這將產生以下結果:
請輸入字符:a
輸入的字符:a
參考資料
  • 1.    周學全[1]. C語言中的輸入語句[J]. 電腦開發與應用, 2009(11).