Содержание | Глава 13

Функция getc

#include <stdio.h>
int getc(FILE *stream);

Функция getc() возвращает из входного потока stream символ, следующий за указателем текущей позиции, а затем увеличивает значение указателя текущей позиции. При чтении символа предполагается, что он имеет тип unsigned char, который потом преобразуется в целый.

При достижении конца файла функция getc() возвращает значение EOF. Ho поскольку значение EOF само является целым значением, при работе с двоичными файлами проверять условие достижения конца файла необходимо с помощью функции feof(). При обнаружении ошибки функция getc() также возвращает значение EOF. Поэтому для выявления ошибок при работе с двоичными файлами необходимо использовать функцию ferror().

Функции getc() и fgetc() идентичны, но в большинстве реализаций функция getc() определена как макрос.

Пример

Следующая программа читает содержимое текстового файла и выводит его на экран.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  FILE *fp;
  char ch;

  if((fp=fopen(argv[1], "r"))==NULL) {
    printf("Не удается открыть файл.\n");
    exit(1);
  }

  while((ch=getc(fp))!=EOF) {
    printf("%c", ch);
  }

  fclose(fp);

  return 0;
}

Зависимые функции

fputc() fgetc() putc() fopen()
Содержание | Глава 13