Maison  >  Article  >  développement back-end  >  A quoi sert getch() en langage C ?

A quoi sert getch() en langage C ?

青灯夜游
青灯夜游original
2020-07-24 14:52:5625508parcourir

En langage C, la fonction getch() permet de lire les caractères du flux stdio, c'est-à-dire de lire un caractère depuis la console mais de ne pas l'afficher à l'écran ; la syntaxe est : "int getch( void)" , renvoie les caractères lus.

A quoi sert getch() en langage C ?

Fonction getch() en langage C

Fonction : Lire les caractères du flux stdio, c'est-à-dire de la console Lire un caractère mais ne pas l'afficher à l'écran

Utilisation :

int getchar(void);

Cette fonction est une fonction sans écho Lorsque l'utilisateur appuie sur un caractère, la fonction le lit automatiquement sans. Appuyez sur Entrée. Certains programmes en ligne de commande en langage C utiliseront cette fonction pour créer des jeux, mais cette fonction n'est pas une fonction standard, alors faites attention à la portabilité !

Getch() sous Windows se trouve dans le fichier d'en-tête de conio.h Pour utiliser la fonction getch(), vous devez référencer le fichier d'en-tête conio.

Code :

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

}

Remarque :

getchar a une valeur de retour int Lorsque le programme appelle getchar, le programme attend que l'utilisateur appuie sur la touche et. saisissez l'utilisateur. Les caractères sont stockés dans le tampon du clavier jusqu'à ce que l'utilisateur appuie sur Entrée (le caractère Entrée est également placé dans le tampon. Lorsque l'utilisateur tape Entrée, getchar commence à lire un caractère à la fois à partir du flux stdio.

La valeur de retour de la fonction getchar est le code ASCII du premier caractère saisi par l'utilisateur. Si une erreur se produit, -1 est renvoyé et les caractères saisis par l'utilisateur sont renvoyés à l'écran

.

Si l'utilisateur appuie sur Entrée. Si vous avez saisi plus d'un caractère auparavant, les autres caractères seront conservés dans le tampon du clavier, en attendant la lecture des appels getchar suivants.

En d'autres termes, les appels getchar suivants seront lus. n'attendra pas que l'utilisateur appuie sur une touche, mais lit directement le tampon. Les caractères de la zone tampon n'attendront pas que l'utilisateur appuie sur la touche jusqu'à ce que les caractères de la zone tampon soient lus

La base. Les fonctions de getch et getchar sont les mêmes. La différence est que getch obtient la valeur de la clé directement à partir du clavier sans attendre que l'utilisateur appuie sur Entrée, tant que l'utilisateur appuie sur une touche, getch renvoie immédiatement la valeur de retour. getch est le code ASCII saisi par l'utilisateur. Si une erreur se produit, il renvoie -1. Les caractères saisis ne seront pas répercutés à l'écran

La fonction getch est souvent utilisée pour le débogage du programme, pertinent. les résultats sont affichés dans des positions clés pour la visualisation, puis la fonction getch est utilisée pour mettre le programme en pause. Lorsqu'une touche est enfoncée, le programme continue de s'exécuter

Recommandé : "

tutoriel en langage c》

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn