Manipulation des fichiers

  1. Ouvrir et fermer un fichier
  2. Ecrire dans un fichier
  3. Lire dans un fichier
  4. Se déplacer dans un fichier
  5. Renommer un fichier
  6. Supprimer un fichier

1. Ouvrir et fermer un fichier

Pour faire quoi qu’il en soit dans un fichier, on doit l’ouvrir d’abord. Et quand on termine de travailler avec, il est conseillé de le fermer afin de libérer la mémoire RAM.
Pour ouvrir un fichier, on utilise la fonction fopen. Et pour fermer un fichier, on utilise la fonction fclose.

pour l’ouverture, voici la syntaxe:
FILE * fopen (chemin, mode d’ouverture);

  • chemin : c’est le chemin complet du fichier (+ le nom du fichier)
  • mode d’ouverture peut avoir une des valeurs ci-dessous :
    • a : le mode d’ajout
    • a+: mode d’ajout en écriture/lecture
    • r: lecture seule
    • r+ : lecture / écriture
    • w : écriture
    • w+ : lecture / écriture en écrasant le contenu

Pour la fermeture :
Syntaxe :
int fclose (File *flux à fermer)

Exemple :

2. Ecrire dans un fichier

Pour écrire dans un fichier, on utilise la fonction fwrite.
Syntaxe :
size_t fwrite ( const void *tableau, size_t taille, size_t nbre-elements, FILE * flux );

  • tableau: il s’agit du pointeur sur le tableau des éléments à écrire.
  • taille : il définit la taille en octets de chaque élément à écrire.
  • nbre-elements : il spécifie le nombre d'éléments, chacun avec une taille en octets.
  • Flux : il s’agit d’un pointeur sur un objet FILE qui spécifie un flux de sortie.

Exemple :

Il faut noter aussi qu’on peut aussi utiliser les fonctions fputs, fputc et fprintf pour écrire dans un fichier.
Ci-dessous, leurs syntaxes :
int fputs (chaîne , FILE * flux );
int fputc(int caractère, FILE *flux);
int fprintf ( FILE * flux, const char * format, ... );

3. Lire dans un fichier

Pour lire dans un fichier, on utilise la fonction fread.

Syntxe:
size_t fread (const void *tableau, size_t taille, size_t nbre-elements, FILE * flux);

Les arguments restent les même qu’avec la fonction fwrite sauf qu’ici flux s’agit d’un pointeur sur un objet FILE qui spécifie un flux d’entrée.

Il faut noter aussi que les fonctions fgetc, fgets, fscanf permettent aussi de lire dans un fichier. Ci-dessous leurs syntaxes :
int getc(FILE *flux);
char *fgets(char *tableau, int n, FILE *stream) ;
n étant le nombre de caractères à lire.
int fscanf(FILE *flux, const char *format, ...) ;

Exemple :

4. Se déplacer dans un fichier

Ici nous allons voir les fonctions ftell, fseek et rewind. Leurs syntaxes sont les suivantes :
long ftell (FILE *flux);
int fseek(FILE *flux, long déplacement, int origine) ;
void rewind(FILE *flux) ;

  • La fonction ftell renvoie la valeur courante de la position du curseur dans le fichier.
  • La fonction fseek définit la position de fichier du flux au décalage donné. La fonction retourne 0 en cas de succès, sinon, elle retourne une valeur non nulle.
    Dans sa syntaxe, déplacement spécifie le nombre d’octet que l’on souhaite donner au pointeur pour compenser l’origine.
    origine est la position où le décalage est ajouté. Elle peut être SEEK_SET (début du fichier), SEEK_CUR (Position actuelle du pointeur de fichier) ou SEEK_END (fin du fichier).
  • La fonction rewind définit la position de fichier au début du fichier du flux donné.

5. Renommer un fichier

Pour renommer un fichier, on utilise la fonction rename.
Syntaxe :
int rename(const char *nom_de_l_ancien_fichier, const char *nom_du_nouveau_fichier);

Exemple :

6. Supprimer un fichier

Pour supprimer un fichier, on utilise la fonction remove.
Syntaxe :
int remove(const char * nom_du_nouveau_fichier_à_supprimer)

Exemple :



Une question? Cliquez ici pour la poser.

Retour sur le portail du langage C/C++