La gestion des fichiers : Bibliothèque (iostream)
Mécanisme indispensable dans un programme informatique, l'ouverture et la modification de fichiers informatiques.
Initialisation et ouverture
Il faut dans un premier temps déclarer le fichier.
#include <iostream>
int main()
{
FILE *f;
f=fopen("d:\\test\\monfichier.txt","rb");
if (f==nullptr)
{
fprint(stderr, "Impossible d'ouvrir le fichier");
}
else {
//traitement
}
}
Remarque 1 : La fonction fopen renvoie une valeur nulle si l'opération échoue.
Remarque 2 : les paramètres possibles de fopen sont :
- rb : ouverture en lecture pour fichier binaire
- r : ouverture en lecture
- w : ouverture en écriture. Efface le fichier existnt et se place au début.
- wb : write binary
- a : ouverture avec ajout. PLace le curseur à la fin du fichier.
Traitement des données
- fgetc : récupère le caractère qui se trouve au niveau du curseur dans le fichier. Après lecture, le curseur est déplacé vers la droite.
int c = fgetc(f); - fputc : place le caractère à la position courant du curseur dans le fichier (en écriture)
fputc(c,f); - fread : lit un ensemble de caractère dans le fichier.
FILE *fs, *f;
char e[5]={'A','B','C','D','E'};
fs=fopen ("U:\\test\\koala.car", "rb");
fread(e,5,sizeof(char),fs);//lit 5 caractères de fs et les mets dans le tableau e - fwrite : écrit un ensemble de caractères
f=fopen("U:\\test\\copie.txt", "wb");
fwrite(e , sizeof(char), sizeof(e), f); //place le contenu du tableau e dans f - fseek : permet de placer le curseur dans le tableau
- SEEK_SET : offset à partir du début
- SEEK_CUR : offset à partir du curseur
- SEEK_END : offset à partir de la fin
fseek(fs,0,SEEK_SET); // se met au début du fichier
fseek(fs,0,SEEK_END); // se met à la fin du fichier
ftell : permet de connaitre la position dans le fichier
fseek(fs,0,SEEK_END);//se place à la fin du fichier
printf("La taille du fichier est de %d",ftell(fs));affiche la taille du fichier
Fermeture
Un fichier ouvert doit être nécessairement fermé pour permettre d'autres ouvertures :
fclose(f);