std:: feof
|
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) |
|
|
Documentación de C
para
feof
|
|