std:: feof
| I/O manipulators | ||||
| Print functions (C++23) | ||||
| C-style I/O | ||||
| Buffers | ||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(C++20)
|
||||
| Streams | ||||
| Abstractions | ||||
| File I/O | ||||
| String I/O | ||||
| Array I/O | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
| Synchronized Output | ||||
|
(C++20)
|
||||
| Types | ||||
| Error category interface | ||||
|
(C++11)
|
||||
|
(C++11)
|
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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
|
|