Attention : Cette page n'est pas une initiation au C. Son objectif est uniquement de
présenter quelques notions de bases du langage C pour pouvoir utiliser le mode 13h.
Les pointeurs de fichier
Les pointeurs de fichier sont indispensable lorsque l'on manipule des fichiers.
Un pointeur est une variable particulière car elle ne stockent pas de une valeur mais l'adresse mémoire d'une autre variable.
Pour les fichiers on utilise des pointeurs de type 'FILE'.
Exemple : FILE * fp (ne pas oublier le *).
Ouvrir et fermer un fichier
On utilise la fonction 'fopen' pour ouvrir un fichier et la fonction 'fclose' pour le fermer.
fp = fopen( "nom_du_fichier" , "mode" ) ;
fclose( fp ) ;
| modes (les plus fréquents) |
Significations |
| r |
Lecture seulement. |
| w |
Ecriture seulement. |
| a |
Ecriture à la fin du fichier (en ajout). |
| rw |
Lecture et écriture |
Lire dans un fichier
Pour la lecture on peut utiliser les fonctions 'fgetc' (pour un seul caractère) ou 'fgets' (pour une chaîne de caractères).
car = fgetc ( fp ) ;
fgets( chaine , fp , nombre_de_caractère_à_lire ) ;
Ecrire dans un fichier
Pour l'écriture on peut utiliser les fonctions 'fputc' (pour un octet) ou 'fputs' (pour une chaîne de caractères).
fputc ( car , fp ) ;
fputs( chaine , fp ) ;
Se déplacer dans un fichier
La fonction 'fseek' permet de naviguer dans un fichier, on peut ainsi placer le pointeur où l'on veut à l'intérieur du fichier selon ses besoins
fseek( fp , nombre_d'octet_du_déplacement_par rapport_à_la_position , position ) ;
| position |
Signification |
| 0 |
Début du fichier |
| 1 |
Position courante |
| 2 |
Fin du fichier |
Un petit exemple
Voici un programme qui demande le chemin d'un fichier et qui affiche son contenu a l'écran.
#include<stdio.h>
main()
{
char fichier[128] ;
char car ;
FILE *fp ;
printf( "\nEntrez le fichier avec son chemin : " ) ;
scanf( "%s" , fichier ) ;
// Ouverture en mode lecture seulement
fp = fopen( fichier , "r" ) ;
// On continue la lecture (octet par octet avec 'fgetc') jusqu'à la fin du fichier (End Of File)
while ( ( car = fgetc( fp ) ) != EOF )
{
printf( "%c" , car ) ;
}
fclose( fp ) ;
}
Voila pour les fichiers, maintenant vous devez pouvoir commencer à faire 2 3 choses intéressantes.
|