Namespaces
Variants

fgetc, getc

From cppreference.net
< c ‎ | io
Определено в заголовке <stdio.h>
int fgetc ( FILE * stream ) ;
(1)
int getc ( FILE * stream ) ;
(2)
1) Считывает следующий символ из заданного входного потока.
2) То же, что и fgetc , за исключением того, что если getc реализован как макрос, он может вычислять stream несколько раз, поэтому соответствующий аргумент никогда не должен быть выражением с побочными эффектами.

Содержание

Параметры

stream - для чтения символа из

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

При успехе возвращает полученный символ как unsigned char , преобразованный в int . При неудаче возвращает EOF .

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

Пример

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL);
    int is_ok = EXIT_FAILURE;
    FILE* fp = fopen(fname, "w+");
    if (!fp)
    {
        perror("File opening failed");
        return is_ok;
    }
    fputs("Hello, world!\n", fp);
    rewind(fp);
    int c; // note: int, not char, required to handle EOF
    while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop
        putchar(c);
    if (ferror(fp))
        puts("I/O error when reading");
    else if (feof(fp))
    {
        puts("End of file is reached successfully");
        is_ok = EXIT_SUCCESS;
    }
    fclose(fp);
    remove(fname);
    return is_ok;
}

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

Hello, world!
End of file is reached successfully

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2024):
  • 7.21.7.1 Функция fgetc (стр.: TBD)
  • 7.21.7.5 Функция getc (стр.: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.21.7.1 Функция fgetc (стр: 240-241)
  • 7.21.7.5 Функция getc (стр: 242)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.21.7.1 Функция fgetc (стр. 330)
  • 7.21.7.5 Функция getc (стр. 332)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.19.7.1 Функция fgetc (стр: 296)
  • 7.19.7.5 Функция getc (стр: 297-298)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
  • 4.9.7.1 Функция fgetc
  • 4.9.7.5 Функция getc

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

читает символ из stdin
(функция)
(удалена в C11) (C11)
читает строку символов из stdin
(функция)
записывает символ в файловый поток
(функция)
возвращает символ обратно в файловый поток
(функция)
C++ документация для fgetc , getc