首頁 >後端開發 >C#.Net教程 >c語言getch()的用法是什麼?

c語言getch()的用法是什麼?

青灯夜游
青灯夜游原創
2020-07-24 14:52:5625709瀏覽

在c語言中,getch()函數用於從stdio流中讀取字符,即從控制台讀取一個字符,但不顯示在屏幕上;語法為:“int getch(void)” ,傳回讀取的字元。

c語言getch()的用法是什麼?

C語言中getch()函數

功能: 從stdio流中讀取字符,即從控制台讀取一個字符,但不顯示在螢幕上

用法: 

int getchar(void);

這個函數是一個不回顯函數,當用戶按下某個字符時,函數自動讀取,無需按回車,有的C語言命令列程式會用到此函數做遊戲,但是這個函數並非標準函數,要注意移植性!

Windows下getch()在conio.h的頭檔中,要使用getch()函數需要引用conio頭檔。

程式碼:

#include <stdio.h> 
#include <fcntl.h> 
#include <stdlib.h> 
#include <conio.h> 
#define ESC       0x1B 
#define ENTER      0x0D 
#define SPACE      0x20 
#define KEY_UP     72  //上 
#define KEY_DOWN    80  //下  
#define KEY_LEFT    75  //左  
#define KEY_RIGHT    77  //右 
 
int KEY_EXIT_STATU = 0 ; 
int KEY_ENTER_STATU = 0 ;  
int KEY_SPACE_STATU = 0 ;  
 
int KEY_UP_STATU =   0 ;  
int KEY_DOWN_STATU =  0 ;  
int KEY_LEFT_STATU =  0 ;  
int KEY_RIGHT_STATU = 0 ;  
 
char ch ;  
 
int get_value() ; 
int main(void) 
{ 
 
  int i = 0; 
  while(1)  
  { 
    get_value(); 
  } 
  return 0 ;  
} 
 
int get_value() 
{ 
  ch = getch() ; 
  system("cls"); 
  switch(ch) 
  { 
      case ESC : KEY_EXIT_STATU = 1 ;       
            printf("退出\n") ; break ;  
      case ENTER :KEY_ENTER_STATU = 1 ;       
            printf("回车\n") ; break ;  
      case SPACE :  
            KEY_SPACE_STATU = 1 ;       
            printf("空格\n") ; break ;  
      case KEY_UP:case &#39;w&#39; :  
            KEY_UP_STATU = 1 ; 
            printf("上\n") ; break ; 
      case KEY_DOWN:case &#39;s&#39; : 
            KEY_DOWN_STATU = 1 ;  
            printf("下\n") ; break ; 
      case KEY_LEFT:case &#39;a&#39; : 
            KEY_LEFT_STATU = 1 ; 
            printf("左\n") ; break ; 
      case KEY_RIGHT:case &#39;d&#39;: 
            KEY_RIGHT_STATU = 1 ; 
            printf("右\n") ; break ; 
  } 

}

註解:

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

getchar函數的回傳值是使用者輸入的第一個字元的ASCII碼,如出錯返回-1,且將使用者輸入的字元回顯到螢幕.

如使用者在按回車之前輸入了不只一個字元,其他字元會保留在鍵盤快取區中,等待後續getchar調用讀取.

#也就是說,後續的getchar調用不會等待用戶按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵.

getch與getchar基本功能相同,差別是getch直接從鍵盤取得鍵值,不等待使用者按回車,只要使用者按一個鍵,getch就立刻返回, getch回傳值是使用者輸入的ASCII碼,出錯返回-1.輸入的字元不會回顯在螢幕上.

getch函數常用於程式偵錯中,在調試時,在關鍵位置顯示有關的結果以待查看,然後用getch函數暫停程序運行,當按任意鍵後程序繼續運行.

推薦:《c語言教程

以上是c語言getch()的用法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn