GETC(3S) GETC(3S) НАЗВАНИЕ getc, getchar, fgetc, getw - считывание символа или машинного слова из потока СИНТАКСИС |#include | |int getc (stream) |FILE *stream; | |int getchar ( ) | |int fgetc (stream) |FILE *stream; | |int getw (stream) |FILE *stream; ОПИСАНИЕ Макрос getc выдает в виде целого числа следующий символ (байт) из указанного потока ввода stream и перемещает текущую позицию (если она определена) на один символ вперед. Макрос getchar эквивалентен getc (stdin). Функция fgetc действует аналогично getc, но реализована именно как функция, а не макрос. Функция fgetc выполня- ется медленнее, чем getc, но обращение к ней требует меньше памяти, и ее имя может передаваться в качестве аргумента функции. Функция getw выдает в виде целого числа следующее слово (для большинства компьютеров это четыре байта) из ука- занного потока ввода stream и перемещает текущую пози- цию (если она определена) на слово вперед. Никакого специального выравнивания текущей позиции (например, по границе слова) не предполагается и не производится. СМ. ТАКЖЕ fclose(3S), ferror(3S), fopen(3S), fread(3S), gets(3S), putc(3S), scanf(3S), stdio(3S). ДИАГНОСТИКА При достижении конца файла или при возникновении ошибки возвращается константа EOF. Чтобы различать эти ситуа- ции, следует использовать функцию ferror(3S). ОГРАНИЧЕНИЕ Реализация макроса getc такова, что значение аргумента stream вычисляется несколько раз. Поэтому, например, обращение getc(*f++) бессмысленно. В подобных случаях следует пользоваться функцией fgetc.