Académique Documents
Professionnel Documents
Culture Documents
fichiers en c
Techniques d’Indexation et Recherche Multimédia
Amira JOUIROU
Plan
A. Ouvrir et fermer un fichier
3
Ouvrir et fermer un fichier
fopen : ouverture du fichier
10
Ouvrir et fermer un fichier
Tester l'ouverture du fichier
int main(int argc, char*argv[])
{
FILE* fichier =NULL ;
fichier=fopen("test.txt", "r+");
if(fichier !=NULL)
{
printf("On peut lire et ecrire dans le fichier");
}
else
{
// On affiche un message d'erreur si on veut
printf("Impossible d'ouvrir le fichier test.txt");
}
return 0;
} 11
Ouvrir et fermer un fichier
fclose : fermer le fichier
• Une fois que vous aurez fini de travailler avec le fichier, il faudra le "fermer". On utilise pour cela la
fonction fclose qui a pour rôle de libérer la mémoire (c.-à-d. supprimer votre fichier chargé dans la mémoire vive)
• Le prototype de la fonction fclose
int fclose (FILE* pointeurSurFichier);
• Cette fonction prend un paramètre : votre pointeur sur le fichier.
• Elle renvoie un entier (int) qui indique si elle a réussi à fermer le fichier. Cet entier vaut :
• 0 : si la fermeture a marché
• EOF : si la fermeture a échoué. EOF est un define situé dans stdio.h qui correspond à un nombre
spécial, utilisé pour dire soit qu'il y a eu une erreur, soit qu'on est arrivé à la fin du fichier. Dans le cas
présent cela signifie qu'il y a eu une erreur.
• Pour fermer le fichier, on va donc écrire : fclose(fichier);
12
Ouvrir et fermer un fichier
• Tout simplement, le schéma que nous allons suivre pour ouvrir et fermer un fichier sera le suivant
Int main(intargc, char*argv[])
{
FILE*fichier=NULL;
fichier = fopen("test.txt", "r+");
if(fichier != NULL){
// On lit et on écrit dans le fichier
// ...
fclose(fichier);// On ferme le fichier qui a été ouvert
}
return0;
} 13
Plan
A. Ouvrir et fermer un fichier
18
Ecrire et lire dans un fichier
Lecture
22
Plan
A. Ouvrir et fermer un fichier
25
Se déplacer dans un fichier
fseek : se positionner dans le fichier
• Prototype int fseek(FILE* pointeurSurFichier, long deplacement, int origine);
• Permettre de déplacer le "curseur" d'un certain nombre de caractères (deplacement) à partir de la position indiquée
par origine.
• Le nombre deplacement peut être un nombre positif (se déplacer en avant), nul (= 0) ou négatif (se déplacer en arrière).
• Le nombre origine peut être l'une des 3 constantes
• SEEK_SET : indiquer le début du fichier.
• SEEK_CUR : indiquer la position actuelle du curseur.
• SEEK_END : indiquer la fin du fichier.
• Exemple : écrire un code c qui permet de déplacer le curseur:
1. 5 caractères après le début 2. 3 caractères avant la position courante 3. À la fin du fichier
26
Se déplacer dans un fichier
rewind : retour au début
• Prototype void rewind(FILE* pointeurSurFichier);
• Cette fonction est équivalente à utiliser fseek pour nous renvoyer à la position 0
dans le fichier.
27
Plan
A. Ouvrir et fermer un fichier