función getch() en C con ejemplos

getch() es una función no estándar y está presente en el archivo de encabezado conio.h que es utilizado principalmente por compiladores de MS-DOS como Turbo C . No es parte de la biblioteca estándar C o ISO C, ni está definido por POSIX. Al igual que estas funciones , getch() también lee un solo carácter del teclado. Pero no utiliza ningún búfer, por lo que el carácter ingresado se devuelve inmediatamente sin esperar la tecla Intro. Sintaxis:

 
 

int getch(void);

Parámetros: este método no acepta ningún parámetro.
Valor devuelto: Este método devuelve el valor ASCII de la tecla presionada.
Ejemplo:
 

C

// Example for getch() in C
 
#include <stdio.h>
 
// Library where getch() is stored
#include <conio.h>
 
int main()
{
    printf("%c", getch());
    return 0;
}
Input:  g (Without enter key)
Output: Program terminates immediately.
        But when you use DOS shell in Turbo C, 
        it shows a single g, i.e., 'g'

Puntos importantes sobre el método getch(): 
 

  1. El método getch() pausa la consola de salida hasta que se presiona una tecla.
  2. No utiliza ningún búfer para almacenar el carácter de entrada.
  3. El carácter ingresado se devuelve inmediatamente sin esperar la tecla Intro.
  4. El carácter ingresado no aparece en la consola.
  5. El método getch() se puede usar para aceptar entradas ocultas como contraseña, números pin de cajero automático, etc.

Ejemplo: Para aceptar contraseñas ocultas usando getch()
Nota: El siguiente código no se ejecutará en compiladores en línea, sino en compiladores de MS-DOS como Turbo IDE.
 

C

// C code to illustrate working of
// getch() to accept hidden inputs
 
#include <conio.h>
#include <dos.h> // delay()
#include <stdio.h>
#include <string.h>
 
void main()
{
 
    // Taking the password of 8 characters
    char pwd[9];
    int i;
 
    // To clear the screen
    clrscr();
 
    printf("Enter Password: ");
    for (i = 0; i < 8; i++) {
 
        // Get the hidden input
        // using getch() method
        pwd[i] = getch();
 
        // Print * to show that
        // a character is entered
        printf("*");
    }
    pwd[i] = '\0';
    printf("\n");
 
    // Now the hidden input is stored in pwd[]
    // So any operation can be done on it
 
    // Here we are just printing
    printf("Entered password: ");
    for (i = 0; pwd[i] != '\0'; i++)
        printf("%c", pwd[i]);
 
    // Now the console will wait
    // for a key to be pressed
    getch();
}

Producción: 
 

Abcd1234

Producción: 
 

Enter Password: ********
Entered password: Abcd1234

Publicación traducida automáticamente

Artículo escrito por AnshulVaidya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *