Разница между функциями getchar и getc при чтении символов из стандартного потока заключается в том, что getchar принимает входные данные только из одного стандартного входного потока, а getc может принимать входные данные из любого из входных потоков. 2
Таким образом, если нужно прочитать один символ из стандартного ввода, то подойдёт getchar, а getc позволяет читать из другого потока (например, открытого с помощью fopen()). 4
При этом getchar() эквивалентна getc(stdin). 14
В случае успеха функции считывают очередной один байт из входного потока и возвращают соответствующее целочисленное значение (обычно ASCII-код прочитанного символа). 15 Если прочитать очередной символ невозможно, возвращается EOF. 15