Namespaces
Variants

std:: feof

From cppreference.net
< cpp ‎ | io ‎ | c
Definido en el encabezado <cstdio>
int feof ( std:: FILE * stream ) ;

Comprueba si se ha alcanzado el final del flujo de archivo dado.

Contenidos

Parámetros

stream - el flujo de archivo a verificar

Valor de retorno

Valor distinto de cero si se ha alcanzado el final del flujo, de lo contrario 0 .

Notas

Esta función solo reporta el estado del flujo según lo informado por la operación de E/S más reciente, no examina la fuente de datos asociada. Por ejemplo, si la operación de E/S más reciente fue un std::fgetc , que devolvió el último byte de un archivo, std::feof devuelve cero. El siguiente std::fgetc falla y cambia el estado del flujo a fin-de-archivo . Solo entonces std::feof devuelve un valor distinto de cero.

En el uso típico, el procesamiento del flujo de entrada se detiene ante cualquier error; feof y std::ferror se utilizan entonces para distinguir entre diferentes condiciones de error.

Ejemplo

#include <cstdio>
#include <cstdlib>
int main()
{
    int is_ok = EXIT_FAILURE;
    FILE* fp = std::fopen("/tmp/test.txt", "w+");
    if (!fp)
    {
        std::perror("File opening failed");
        return is_ok;
    }
    int c; // Nota: int, no char, necesario para manejar EOF
    while ((c = std::fgetc(fp)) != EOF) // Bucle estándar de lectura de archivos E/S de C
        std::putchar(c);
    if (std::ferror(fp))
        std::puts("I/O error when reading");
    else if (std::feof(fp))
    {
        std::puts("End of file reached successfully");
        is_ok = EXIT_SUCCESS;
    }
    std::fclose(fp);
    return is_ok;
}

Salida:

End of file reached successfully

Véase también

verifica si se ha alcanzado el fin de archivo
(función miembro pública de std::basic_ios<CharT,Traits> )
limpia errores
(función)
muestra una cadena de caracteres correspondiente al error actual en stderr
(función)
verifica si hay un error de archivo
(función)