Eind of Line - EOF en C

Muhammad Zeeshan 12 octubre 2023
  1. End of File (EOF) en C
  2. Operaciones a un Archivo en C
  3. Ejemplo de EOF en C
Eind of Line - EOF en C

El tema de expresar EOF en C será el foco de este artículo.

End of File (EOF) en C

La circunstancia conocida como End of File se produce en un sistema operativo de un ordenador cuando ya no hay datos que se puedan leer de una fuente de datos. La fuente de datos a menudo se denomina archivo o flujo.

La entrada se ha completado cuando se muestra el mensaje End of File (EOF).

Después de ingresar el contenido, podemos terminar el texto presionando las teclas Ctrl y Z simultáneamente. Esto indica que el archivo ha llegado a su fin y no hay nada más que leer.

Cuando se llega al final del archivo en C, la función getc() devuelve EOF. getc() también devolverá End of File (EOF) si no tiene éxito.

Por lo tanto, no es suficiente solo comparar el valor proporcionado por getc() con EOF para determinar si el archivo ha llegado o no a su fin. C ofrece la función feof() para resolver este problema.

Esta función devolverá un valor mayor que cero solo si se ha llegado al final del archivo; de lo contrario, devolverá 0.

Operaciones a un Archivo en C

La mayoría de los programas se desarrollan para guardar la información que se recupera del programa. Uno de estos métodos es guardar la información obtenida en un archivo.

La siguiente es una lista de las diversas operaciones que se pueden realizar en un archivo.

Crear un archivo

Utilizando el programa fopen y especificando características como a, a+, w y w++ es posible crear un nuevo archivo.

abrir un archivo

La función fopen y los modos de acceso apropiados se utilizan cada vez que se abre un archivo. Los siguientes son algunos modos de acceso a archivos que se utilizan con mayor frecuencia.

  1. Al pulsar a se buscará el archivo. Si el archivo se abre con éxito, la función fopen() lo carga en la memoria y crea un puntero que enlaza con el carácter que ahora se lee.

    Si el archivo aún no existe, se generará uno nuevo. Devuelve Null si no puede abrir un archivo.

  2. La letra w busca en el archivo. Si el archivo ya existe, se reescribirá el contenido del archivo.

    Si el archivo aún no existe, se generará uno nuevo. Si el archivo no se puede abrir, se devolverá Null.

Para realizar las actividades que se deben realizar sobre el archivo se utiliza un puntero especializado conocido como File pointer y su declaración queda así:

FILE *fp;

Por lo tanto, es posible abrir el archivo usando:

fp = fopen("Shanii.txt", "w");

Aquí, Shanii.txt es el archivo que queremos que se abra, y el segundo parámetro es el modo de archivo.

Lectura de un archivo

Las funciones fscanf y fgets se utilizan para realizar las operaciones de lectura de los archivos. Ambos métodos realizaron las mismas acciones que scanf y gets, pero consideraron un argumento adicional llamado file pointer.

Tiene la opción de leer el archivo carácter por carácter o línea por línea, según cómo desee organizar la información. El siguiente es un ejemplo del código necesario para leer un archivo.

FILE* fp;
fp = fopen("shanii.txt", "r");
fscanf(fp, "%s %s %s %d", str1, str2, str3, &year);

escribir un archivo

Las funciones fprintf y fputs, que se usan para leer archivos, también se pueden usar para escribir archivos, y el proceso es bastante similar a la lectura de archivos. El comando a usar cuando se escribe en un archivo se ve así:

FILE *fp;
fp = fopen("shanii.txt", "w");
fprintf(fp, "%s %s %s %d", "I", "am", "Zeeshan", 2000);

Cerrar un archivo

Siempre debe cerrar un archivo después de que todas sus acciones se hayan completado con éxito. Debe usar la función fclose para cerrar un archivo con éxito.

El código para cerrar un archivo se muestra aquí:

FILE *fp;
fp = fopen("fileName.txt", "w");
fprintf(fp, "%s %s %s %d", "I", "am", "Zeeshan", 2000);
fclose(fp);

Ejemplo de EOF en C

Por ejemplo, mire el siguiente código C para mostrar el contenido de un archivo de texto llamado shanii.txt en la pantalla.

El valor de getc() se compara primero con EOF.

int charac = getc(filepointer);

while (charac != EOF) {
  putchar(charac);
  charac = getc(filepointer);
}

Luego, se realiza una segunda verificación usando feof(). Esta comprobación garantiza que el programa solo emita El programa ha llegado al final del archivo si se ha llegado al final del archivo.

if (feof(filepointer)) {
  printf("\n Program has reached End-of-file");
}

De lo contrario, el programa mostrará Hubo un problema.

Código fuente:

#include <stdio.h>

int main() {
  FILE *filepointer = fopen("shanii.txt", "r");
  int charac = getc(filepointer);

  while (charac != EOF) {
    putchar(charac);
    charac = getc(filepointer);
  }

  if (feof(filepointer)) {
    printf("\n Program has reached End-of-file");
  } else {
    printf("\n There was a problem");
  }
  fclose(filepointer);
  getchar();
  return 0;
}
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn