Namespaces
Variants

fgetc, getc

From cppreference.net
< c ‎ | io
Definido en el encabezado <stdio.h>
int fgetc ( FILE * stream ) ;
(1)
int getc ( FILE * stream ) ;
(2)
1) Lee el siguiente carácter del flujo de entrada dado.
2) Igual que fgetc , excepto que si getc está implementado como una macro, puede evaluar stream más de una vez, por lo que el argumento correspondiente nunca debe ser una expresión con efectos secundarios.

Contenidos

Parámetros

stream - para leer el carácter desde

Valor de retorno

En caso de éxito, devuelve el carácter obtenido como un unsigned char convertido a un int . En caso de fallo, devuelve EOF .

Si el fallo ha sido causado por una condición de fin de archivo, establece adicionalmente el eof indicador (ver feof() ) en stream . Si el fallo ha sido causado por algún otro error, establece el error indicador (ver ferror() ) en stream .

Ejemplo

#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;
}

Salida posible:

Hello, world!
End of file is reached successfully

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.21.7.1 La función fgetc (p: TBD)
  • 7.21.7.5 La función getc (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.21.7.1 La función fgetc (p: 240-241)
  • 7.21.7.5 La función getc (p: 242)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.21.7.1 La función fgetc (p: 330)
  • 7.21.7.5 La función getc (p: 332)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.19.7.1 La función fgetc (p: 296)
  • 7.19.7.5 La función getc (p: 297-298)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.9.7.1 La función fgetc
  • 4.9.7.5 La función getc

Véase también

lee un carácter desde stdin
(función)
(eliminado en C11) (C11)
lee una cadena de caracteres desde stdin
(función)
escribe un carácter a un flujo de archivo
(función)
devuelve un carácter a un flujo de archivo
(función)
Documentación de C++ para fgetc , getc