Diferencia entre getc(), getchar(), getch() y getche()

Todas estas funciones leen un carácter de la entrada y devuelven un valor entero. El entero se devuelve para dar cabida a un valor especial utilizado para indicar un error. El valor EOF se usa generalmente para este propósito.

getc():
lee un solo carácter de un flujo de entrada dado y devuelve el valor entero correspondiente (normalmente el valor ASCII del carácter de lectura) en caso de éxito. Devuelve EOF en caso de falla.

Sintaxis:

int getc(FILE *stream); 

Ejemplo:

// Example for getc() in C
#include <stdio.h>
int main()
{
   printf("%c", getc(stdin));
   return(0);
}
Input: g (press enter key)
Output: g 

Una aplicación de ejemplo: programa en C para comparar dos archivos y reportar discrepancias

getchar():
la diferencia entre getc() y getchar() es que getc() puede leer desde cualquier flujo de entrada, pero getchar() lee desde la entrada estándar. Entonces getchar() es equivalente a getc(stdin).

Sintaxis:

int getchar(void); 

Ejemplo:

// Example for getchar() in C
#include <stdio.h>
int main()
{
   printf("%c", getchar());
   return 0;
}
Input: g(press enter key)
Output: g 

getch():
getch() es una función no estándar y está presente en el archivo de encabezado conio.h que utilizan principalmente los compiladores de MS-DOS como Turbo C. No es parte de la biblioteca estándar de C o ISO C, ni está definido por POSIX (Fuente: http://en.wikipedia.org/wiki/Conio.h)
Al igual que las funciones anteriores, 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();

Ejemplo:

// Example for getch() in C
#include <stdio.h>
#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'

getche()
Al igual que getch(), esta también es una función no estándar presente en conio.h. Lee un solo carácter del teclado y se muestra inmediatamente en la pantalla de salida sin esperar la tecla Intro.

Sintaxis:

int getche(void); 

Ejemplo:

#include <stdio.h>
#include <conio.h>
// Example for getche() in C
int main()
{
  printf("%c", getche());
  return 0;
}
Input: g(without enter key as it is not buffered)
Output: Program terminates immediately.
        But when you use DOS shell in Turbo C, 
        double g, i.e., 'gg'

Este artículo es una contribución de Vankayala Karunakar . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *