Namespaces
Variants

std:: getchar

From cppreference.net
< cpp ‎ | io ‎ | c
Определено в заголовке <cstdio>
int getchar ( ) ;

Считывает следующий символ из stdin .

Эквивалентно std:: getc ( stdin ) .

Содержание

Параметры

(нет)

Возвращаемое значение

Полученный символ при успехе или EOF при неудаче.

Если сбой вызван условием конца файла, дополнительно устанавливает индикатор eof (см. std::feof() ) на stdin . Если сбой вызван другой ошибкой, устанавливает индикатор error (см. std::ferror() ) на stdin .

Пример

std::getchar с проверкой ошибок. Выход из программы при вводе символа ESC.

#include <cctype>
#include <cstdio>
#include <cstdlib>
#include <iomanip>
#include <iostream>
int main()
{
    for (int ch; (ch = std::getchar()) != EOF ;) // чтение/вывод "abc" из stdin
    {
        if (std::isprint(ch))
            std::cout << static_cast<char>(ch) << '\n';
        if (ch == 27) // 'ESC' (escape) в ASCII
            return EXIT_SUCCESS;
    }
    // Проверка причины достижения EOF.
    if (std::feof(stdin)) // если сбой вызван условием конца файла
        std::cout << "Достигнут конец файла\n";
    else if (std::ferror(stdin)) // если сбой вызван другой ошибкой
    {
        std::perror("getchar()");
        std::cerr << "getchar() завершился ошибкой в файле " << std::quoted(__FILE__)
                  << " в строке # " << __LINE__ - 14 << '\n';
        std::exit(EXIT_FAILURE);
    }
    return EXIT_SUCCESS;
}

Возможный вывод:

abc
a
b
c
^[

Смотрите также

получает символ из файлового потока
(функция)