End of File (EOF) en C

Muhammad Zeeshan 12 octobre 2023
  1. End of Line (EOF) en C
  2. Opérations sur un fichier en C
  3. Exemple de EOF en C
End of File (EOF) en C

Le sujet de l’expression d’EOF en C sera au centre de cet article.

End of Line (EOF) en C

La circonstance connue sous le nom de End of Line se produit dans un système d’exploitation d’un ordinateur lorsqu’il n’y a plus de données pouvant être lues à partir d’une source de données. La source de données est souvent appelée file ou stream.

La saisie est terminée lorsque le message Fin du fichier (EOF) s’affiche.

Après avoir saisi le contenu, nous pouvons terminer le texte en appuyant simultanément sur les touches Ctrl et Z. Cela signale que le dossier est arrivé à son terme et qu’il n’y a plus rien à lire.

Lorsque la fin du fichier est atteinte en C, la fonction getc() renvoie EOF. getc() renverra également end-of-file (EOF) en cas d’échec.

Par conséquent, il ne suffit pas de comparer uniquement la valeur fournie par getc() avec EOF pour déterminer si oui ou non le fichier est arrivé à sa fin. C propose la fonction feof() pour résoudre ce problème.

Cette fonction renverra une valeur supérieure à zéro uniquement si la fin du fichier a été atteinte ; sinon, il renverra 0.

Opérations sur un fichier en C

La majorité des programmes sont développés pour enregistrer les informations extraites du programme. L’une de ces méthodes consiste à enregistrer les informations obtenues dans un fichier.

Voici une liste des différentes opérations pouvant être effectuées sur un fichier.

Créer un fichier

En utilisant le programme fopen et en spécifiant des caractéristiques telles que a, a+, w, et w++, il est possible de créer un nouveau fichier.

Ouvrir un fichier

La fonction fopen et les modes d’accès appropriés sont utilisés à chaque ouverture de fichier. Voici quelques modes d’accès aux fichiers les plus souvent utilisés.

  1. Appuyez sur a pour rechercher le fichier. Si le fichier est ouvert avec succès, la fonction fopen() le charge en mémoire et crée un pointeur qui renvoie au caractère en cours de lecture.

    Si le fichier n’existe pas déjà, un nouveau sera produit. Renvoie Null si impossible d’ouvrir un fichier.

  2. La lettre w recherche le fichier. Si le fichier existe déjà, le contenu du fichier sera réécrit.

    Si le fichier n’existe pas déjà, un nouveau sera produit. Si le fichier ne peut pas être ouvert, Null sera renvoyé.

Pour effectuer les activités qui doivent être faites sur le fichier, un pointeur spécialisé connu sous le nom de File pointer est utilisé, et sa déclaration ressemble à ceci :

FILE *fp;

Par conséquent, il est possible d’ouvrir le fichier en utilisant :

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

Ici, Shanii.txt est le fichier que nous voulons ouvrir, et le deuxième paramètre est le mode de fichier.

Lire un fichier

Les fonctions fscanf et fgets permettent d’effectuer les opérations de lecture sur les fichiers. Ces deux méthodes effectuaient les mêmes actions que scanf et gets, mais elles considéraient un argument supplémentaire appelé le pointeur de fichier.

Vous avez le choix de lire le fichier caractère par caractère ou ligne par ligne, selon la manière dont vous souhaitez organiser les informations. Voici un exemple du code nécessaire pour lire un fichier.

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

Écrire un fichier

Les fonctions fprintf et fputs, qui servent à lire des fichiers, peuvent également être utilisées pour écrire des fichiers, et le processus est assez similaire à la lecture de fichiers. La commande à utiliser lors de l’écriture dans un fichier ressemble à ceci :

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

Fermer un fichier

Vous devez toujours fermer un fichier une fois que toutes ses actions ont été effectuées avec succès. Vous devez utiliser la fonction fclose pour fermer un fichier avec succès.

Le code de fermeture d’un fichier est affiché ici :

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

Exemple de EOF en C

Par exemple, regardez le code C suivant pour afficher le contenu d’un fichier texte nommé shanii.txt à l’écran.

La valeur de getc() est d’abord comparée à EOF.

int charac = getc(filepointer);

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

Ensuite, une seconde vérification est effectuée à l’aide de feof(). Cette vérification garantit que le programme n’affiche Program has reached End-of-file que si la fin du fichier a été atteinte.

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

Sinon, le programme affichera There was a problem.

Code source:

#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