0% ont trouvé ce document utile (0 vote)
10 vues3 pages

Fic Hiers

Transféré par

Tahni Mohammed
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues3 pages

Fic Hiers

Transféré par

Tahni Mohammed
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

LES FICHIERS

Un fichier est un ensemble d'informations stockées sur une mémoire de masse


(disque dur, disquette, CD-ROM).
En C, un fichier est une suite d'octets. Les informations contenues dans le fichier
ne sont pas forcément de même type (char, int, structure ...)
MANIPULATION DES FICHIERS
Opérations possibles avec les fichiers: Créer - Ouvrir - Fermer - Lire - Ecrire -
Détruire - Renommer.
La plupart des fonctions permettant la manipulation des fichiers sont rangées
dans la bibliothèque standard STDIO.H,
1 - Déclaration:
FILE *f; /* majuscules obligatoires pour FILE */
On définit un pointeur. Ce pointeur fournit l'adresse d'une cellule donnée.
2 - Ouverture:
f=fopen(char *nom, char *mode);
On passe donc 2 chaînes de caractères
nom: celui figurant sur le disque, exemple: « C:\[Link] »
mode: c’est le mode d'accè.

"r" ouverture d'un fichier texte en lecture


"w" ouverture d'un fichier texte en écriture
"a" ouverture d'un fichier texte en écriture à la fin

Remarque :
Ces modes d'accès ont pour particularités :
• Si le mode contient la lettre r, le fichier doit exister.
• Si le mode contient la lettre w, le fichier peut ne pas exister. Dans ce cas, il
sera créé. Si le fichier existe déjà, son ancien contenu sera perdu.
• Si le mode contient la lettre a, le fichier peut ne pas exister. Dans ce cas, il
sera créé. Si le fichier existe déjà, les nouvelles données seront ajoutées à
la fin du fichier précédent.
• A l’ouverture, le pointeur est positionné au début du fichier
Exemple : FILE *f ;
f = fopen(« a :\[Link] », « rb ») ;
3 - Fermeture:
int fclose(FILE *f);
Retourne 0 si la fermeture s’est bien passée.
Il faut toujours fermer un fichier à la fin d'une session.
Exemple : FILE *f;
f = fopen(C :\[Link] , rb) ;
/* Ici instructions de traitement */
fclose(f) ;
4 - Destruction:
int remove(char *nom);
Retourne 0 si la fermeture s’est bien passée.
Exemple : remove(“C:\[Link]”) ;
5 - Renommer:
int rename(char *oldname, char *newname);
Retourne 0 si la fermeture s’est bien passée.
6- Ecriture dans le fichier:
a- int putc(char c, FILE *f);
Ecrit la valeur de c à la position courante du pointeur, le pointeur avance d'une
case mémoire.
Exemple : putc(‘A’, f) ;
b- int fputs(char *chaîne, FILE *f);
idem avec une chaîne de caractères, le pointeur avance de la longueur de la
chaine ('\0' n'est pas rangé dans le fichier).
Exemple : fputs(”BONJOUR”, f) ;
c- int fwrite(*p,int taille_bloc,int nb_bloc,FILE *f);
p de type pointeur, écrit à partir de la position courante du pointeur f nb_bloc X
taille_bloc octets lus à partir de l'adresse p. Le pointeur fichier avance d'autant.
Le pointeur p est vu comme une adresse.
Exemple: taille_bloc=4 (taille d'un entier en C), nb_bloc=3.
int tab[10] ;
fwrite(tab,4,3,f) ;
d- int fprintf(FILE *f, char *format, liste d'expressions);
réservée plutôt aux fichiers ASCII.
Exemples: fprintf(f,"%s","il fait beau");
fprintf(f,%d,n);
fprintf(f,"%s%d","il fait beau",n);
Le pointeur avance d'autant.
7 - Lecture du fichier:
int getc(FILE *f);
Lit 1 caractère, mais retourne un entier n; retourne EOF si erreur ou fin de
fichier; le pointeur avance d'une case.
Exemple: char c ;
c = (char)getc(f) ;
char *fgets(char *chaine,int n,FILE *f);
lit n-1 caractères à partir de la position du pointeur et les range dans chaine en
ajoutant '\0'.
int fread(void *p,int taille_bloc,int nb_bloc,FILE *f);
Analogue à fwrite en lecture.
Retourne le nombre de blocs lus, et 0 à la fin du fichier.

int fscanf(FILE *fichier, char *format, liste d'adresses);


Analogue à fprintf en lecture.
8 - Gestion des erreurs:
fopen retourne le pointeur NULL si erreur (Exemple: impossibilité d'ouvrir le
fichier).
fgets retourne le pointeur NULL en cas d'erreur ou si la fin du fichier est atteinte.
la fonction int feof(FILE *f) retourne 0 tant que la fin du fichier n’est pas
atteinte.
la fonction int ferror(FILE *f) retourne 1 si une erreur est apparue lors d'une
manipulation de fichier, 0 dans le cas contraire.

Vous aimerez peut-être aussi