Manipulez des fichiers avec C
Sommaire
- 1- Objectifs
- 2- Introduction
- 3- Création d'une application FX test sous Eclipse.
- 3.1- Ouvrir un fichier
- 3.1.1- Exemple de lecture et d'écriture dans un fichier
- 4- Réalisation
- 4.1- Inclusion de bibliothèques :
- 4.2- Déclaration des variables de fichiers :
- 4.3- Ouverture des fichiers :
- 4.4- Lecture et écriture :
- 4.5- Fermeture des fichiers :
- 4.6- Message de confirmation :
- 4.6.1- Cours en C
Manipulez des fichiers avec C
-
Objectifs
-
Introduction
- La manipulation de fichiers en C implique l’utilisation de fonctions standard de la bibliothèque
stdio.h
pour ouvrir, lire, écrire et fermer des fichiers. - En C, les fichiers sont gérés à l’aide de fonctions standard de la bibliothèque stdio.h. Les principales opérations sont l’ouverture, la lecture, l’écriture et la fermeture de fichiers.
-
Création d’une application FX test sous Eclipse.
-
Ouvrir un fichier
- Pour ouvrir un fichier, utilisez la fonction fopen. Elle prend deux arguments : le nom du fichier et le mode d’ouverture. Voici quelques modes courants :
- «
r
« : ouvrir un fichier en lecture. - «
w
« : ouvrir un fichier en écriture (crée un fichier vide ou écrase le contenu existant). - «
a
« : ouvrir un fichier en ajout (append) (écrit à la fin du fichier). - «
r+
« : ouvrir un fichier en lecture et écriture. - «
w+
« : ouvrir un fichier en lecture et écriture (crée un fichier vide ou écrase le contenu existant). - «
a+
« : ouvrir un fichier en lecture et ajout (append). -
Exemple de lecture et d’écriture dans un fichier
- Voici un exemple complet montrant comment lire d’un fichier et écrire dans un autre fichier en utilisant C.
-
Réalisation
-
Inclusion de bibliothèques :
-
Déclaration des variables de fichiers :
-
Ouverture des fichiers :
-
Lecture et écriture :
-
Fermeture des fichiers :
- ferment les fichiers ouverts pour libérer les ressources.
-
Message de confirmation :
- affiche un message indiquant que l’opération de copie est terminée avec succès.
- Autres fonctions utiles
fprintf et fscanf :
- Utilisées pour écrire et lire des données formatées dans un fichier, respectivement.
fgets et fputs :
- Utilisées pour lire et écrire des chaînes de caractères.
- Ces fonctions fournissent une flexibilité pour différentes opérations de lecture et d’écriture dans des fichiers en C.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
FILE *sourceFile, *destFile;
char ch;
// Ouvrir le fichier source en lecture
sourceFile = fopen("source.txt", "r");
if (sourceFile == NULL) {
perror("Erreur d'ouverture du fichier source");
return 1;
}
// Ouvrir le fichier de destination en écriture
destFile = fopen("destination.txt", "w");
if (destFile == NULL) {
perror("Erreur d'ouverture du fichier de destination");
fclose(sourceFile); // Fermer le fichier source avant de quitter
return 1;
}
// Lire du fichier source et écrire dans le fichier de destination
while ((ch = fgetc(sourceFile)) != EOF) {
if (fputc(ch, destFile) == EOF) {
perror("Erreur d'écriture dans le fichier de destination");
fclose(sourceFile);
fclose(destFile);
return 1;
}
}
// Fermer les fichiers
fclose(sourceFile);
fclose(destFile);
printf("Copie terminée avec succès !\n");
return 0;
}
#include <stdlib.h> // Pour les opérations d'entrée/sortie standard
#include <stdlib.h> // Pour les fonctions d'utilitaires, comme exit
FILE *sourceFile, *destFile; // Pointeurs de type FILE pour les fichiers source et destination
char ch; // Variable pour stocker chaque caractère lu
sourceFile = fopen("source.txt", "r"); ouvre source.txt en mode lecture.
destFile = fopen("destination.txt", "w"); ouvre destination.txt en mode écriture.
Chaque ouverture est suivie d’une vérification pour s’assurer que l’opération a réussi. En cas d’échec, un message d’erreur est affiché et le programme se termine.
-
La boucle
while ((ch = fgetc(sourceFile)) != EOF)
lit chaque caractère du fichier source jusqu’à la fin du fichier (EOF).fputc(ch, destFile); écrit le caractère lu dans le fichier de destination.
Chaque écriture est vérifiée pour détecter d’éventuelles erreurs.
fclose(sourceFile); et fclose(destFile);
printf("Copie terminée avec succès !\n");
fprintf(filePointer, "Format string", var1, var2, ...);
fscanf(filePointer, "Format string", &var1, &var2, ...);
fgets(buffer, size, filePointer); // Lire une ligne du fichier
fputs(buffer, filePointer); // Écrire une chaîne dans le fichier