Spec-Zone.ru › C

fgetc, getc

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

Параметры

stream - поток, из которого считывается символ

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

В случае успеха возвращает полученный символ как unsignedchar, преобразованный в 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

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/io/fgetc

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API