getch() function in C with Examples

getch() is a nonstandard function and is present in conio.h header file which is mostly used by MS-DOS compilers like Turbo C. It is not part of the C standard library or ISO C, nor is it defined by POSIX.

Like these functions, getch() also reads a single character from the keyboard. But it does not use any buffer, so the entered character is immediately returned without waiting for the enter key.

Syntax:

int getch(void);

Parameters: This method does not accept any parameters.

Return value: This method returns the ASCII value of the key pressed.



Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Example for getch() in C
  
#include <stdio.h>
  
// Library where getch() is stored
#include <conio.h>
  
int main()
{
    printf("%c", getch());
    return 0;
}

chevron_right


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'

Important Points regarding getch() method:

  1. getch() method pauses the Output Console untill a key is pressed.
  2. It does not use any buffer to store the input character.
  3. The entered character is immediately returned without waiting for the enter key.
  4. The entered character does not show up on the console.
  5. The getch() method can be used to accept hidden inputs like password, ATM pin numbers, etc.

Example: To accept hidden passwords using getch()

Note: Below code won’t run on Online compilers, but on MS-DOS compilers like Turbo IDE.

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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();
}

chevron_right


Output:

Abcd1234

Output:

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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.