comprensión de cómo funciona el símbolo EOF significa entender cómo funciona la entrada de archivo. Normalmente , el programador carga el archivo en el programa a través de un puntero de archivo . Uso de las bibliotecas " stdio.h " , el programador puede utilizar un puntero de archivo para hacer referencia a un archivo en la memoria, y luego o bien leer o escribir en el fichero . El siguiente ejemplo muestra cómo declarar y utilizar un puntero de archivo :
# include " stdio.h "
int main () {
FILE * fp ; //archivo pointer
fp = fopen ("c : \\ \\ archivo.txt ", " r ") //abre " archivo.txt " como de sólo lectura , y utiliza fp para referenciarlo
lectura de un archivo
el programador se lee desde el archivo . Ella puede hacer esto utilizando la función " fgetc ()" , que se lee de un personaje archivo a la vez . El " fgetc ()" devuelve un valor entero , que se puede cambiar a un personaje por el programador para imprimir en la pantalla o por cualquier manipulación es necesario:
int ch = fgetc ( fp ) ;
printf ("% c" , (char ) ch) ;
archivos Interno Punteros
Cuando la función " fgetc () ", se lee un personaje , se mueve un puntero de archivo interno hacia adelante un espacio. Esto significa que a medida que un archivo es leído por la función , el archivo permanece siempre listo para otra lectura. ¿Cómo el puntero del archivo interno funciona no es importante para el programador o la función . Lo importante es que a medida que el puntero de archivo se mueve hacia adelante durante las lecturas exitosas , con el tiempo llegará al final del archivo , sino que no, por ejemplo , seguir leyendo el archivo más allá del tamaño del archivo
. el Fin del archivo
Cuando el puntero de archivo pasa el personaje final, el " fgetc ()" función devolverá un valor entero negativo vinculado a una macro denominada "EOF ". Una macro es una redefinición de un valor en un formato más legible . El programador puede comprobar este valor utilizando la macro " EOF" . Si la función devuelve el valor , el programador puede detener la lectura del archivo y evitar errores , como en este ejemplo :
int c ;
while (( c = fgetc ( fp ) ) ! = EOF ) //cuando c contiene el valor EOF , el bucle se detendrá la lectura
{
putchar ( c ) ;
}