Namespaces
Variants

std:: getchar

From cppreference.net
< cpp ‎ | io ‎ | c
Definido en el encabezado <cstdio>
int getchar ( ) ;

Lee el siguiente carácter de stdin .

Equivalente a std:: getc ( stdin ) .

Contenidos

Parámetros

(ninguno)

Valor de retorno

El carácter obtenido en caso de éxito o EOF en caso de fallo.

Si el fallo ha sido causado por una condición de fin de archivo, establece adicionalmente el indicador eof (ver std::feof() ) en stdin . Si el fallo ha sido causado por algún otro error, establece el indicador de error (ver std::ferror() ) en stdin .

Ejemplo

std::getchar con verificación de errores. Salir del programa ingresando el carácter ESC.

#include <cctype>
#include <cstdio>
#include <cstdlib>
#include <iomanip>
#include <iostream>
int main()
{
    for (int ch; (ch = std::getchar()) != EOF ;) // leer/imprimir "abc" desde stdin
    {
        if (std::isprint(ch))
            std::cout << static_cast<char>(ch) << '\n';
        if (ch == 27) // 'ESC' (escape) en ASCII
            return EXIT_SUCCESS;
    }
    // Probar la razón por la que se alcanzó EOF.
    if (std::feof(stdin)) // si el fallo fue causado por condición de fin de archivo
        std::cout << "Se alcanzó el fin del archivo\n";
    else if (std::ferror(stdin)) // si el fallo fue causado por algún otro error
    {
        std::perror("getchar()");
        std::cerr << "getchar() falló en el archivo " << std::quoted(__FILE__)
                  << " en la línea # " << __LINE__ - 14 << '\n';
        std::exit(EXIT_FAILURE);
    }
    return EXIT_SUCCESS;
}

Salida posible:

abc
a
b
c
^[

Véase también

obtiene un carácter de un flujo de archivo
(función)
Documentación C para getchar