En langage algorithmique, il suffit de simplement ouvrir et fermer un fichier par les commandes respectives:
programme PERSONNEL chaîne NOM_FICHIER . . . écrire "Entrez le nom du fichier : " lire NOM_FICHIER ouvrir NOM_FICHIER en écriture (* ou bien *) (* ouvrir NOM_FICHIER en lecture *) . . . fermer NOM_FICHIER fprogramme (* fin PERSONNEL *)
En pratique, il faut contrôler si l'ouverture d'un fichier a été accomplie avec succès avant de continuer les traitements. Pour le cas d'une erreur, nous allons envisager deux réactions différentes:
a) Répéter l'essai jusqu'à l'ouverture correcte du fichier
#include <stdio.h> main() { FILE *P_FICHIER; /* pointeur sur FILE */ char NOM_FICHIER[30]; /* nom du fichier */ . . . do { printf("Entrez le nom du fichier : "); scanf("%s", NOM_FICHIER); P_FICHIER = fopen(NOM_FICHIER, "w"); /* ou bien */ /* P_FICHIER = fopen(NOM_FICHIER, "r"); */ if (!P_FICHIER) printf("\aERREUR: Impossible d'ouvrir " "le fichier: %s.\n", NOM_FICHIER); } while (!P_FICHIER); . . . fclose(P_FICHIER); return 0; }
b) Abandonner le programme en retournant un code d'erreur non nul - exit
#include <stdio.h> #include <stdlib.h> main() { FILE *P_FICHIER; /* pointeur sur FILE */ char NOM_FICHIER[30]; /* nom du fichier */ . . . printf("Entrez le nom du fichier : "); scanf("%s", NOM_FICHIER); P_FICHIER = fopen(NOM_FICHIER, "w"); /* ou bien */ /* P_FICHIER = fopen(NOM_FICHIER, "r"); */ if (!P_FICHIER) { printf("\aERREUR: Impossible d'ouvrir " "le fichier: %s.\n", NOM_FICHIER); exit(-1); /* Abandonner le programme en */ } /* retournant le code d'erreur -1 */ . . . fclose(P_FICHIER); return 0; }