Dans ce guide, nous allons apprendre à effectuer des opérations dentrée / sortie (E / S) sur un fichier en utilisant le langage de programmation C.
E / S fichier C – Table des matières
1. Ouverture dun fichier
2. Lire un fichier
3. Ecrire un fichier
4. Fermer un fichier
5. Lire et écrire des chaînes dans un fichier
6. Lire et écrire des fichiers binaires en C
Avant de discuter de chaque opération en détail, prenons un simple programme C:
Un programme C simple pour ouvrir, lire et fermer le fichier
Dans le programme ci-dessus, nous ouvrons un fichier newfile.txt
en mode r
, en lisant le contenu du fichier et en affichant sur la console. permet de comprendre chaque opération en détail:
Ouverture dun fichier
fopen()
est utilisée pour ouvrir un fichier.
Syntaxe:
FILE pointer_name = fopen ("file_name", "Mode");
pointer_name
peut être nimporte quoi de votre choix.
file_name
est le nom du fichier que vous souhaitez ouvrir. Spécifiez le chemin complet ici comme « C: \\ myfiles \\ newfile.txt ».
Lors de louverture dun fichier, vous devez spécifier le mode. Le mode que nous utilisons pour lire un fichier est « r ”Qui est en » mode lecture seule « .
par exemple:
FILE *fp;fp = fopen("C:\\myfiles\\newfile.txt", "r");
Ladresse du premier caractère est stockée dans pointer fp
.
Comment vérifier si le fichier sest ouvert avec succès?
Si le fichier ne souvre pas avec succès, le pointeur se verra attribuer une valeur NULL, vous pouvez donc écrire la logique comme ceci :
Ce code vérifiera si le fichier sest ouvert avec succès ou non. Si le fichier ne souvre pas, cela affichera un message derreur à lutilisateur.
..FILE fpr;fpr = fopen("C:\\myfiles\\newfile.txt", "r");if (fpr == NULL){ puts("Error while opening file"); exit();}
Différents modes douverture de fichier:
Le fichier est ouvert à laide de la fonction fopen()
, lors de louverture, vous pouvez utiliser lun des modes suivants selon lexigence.
Mode « r »: Cest un mode lecture seule, ce qui signifie que si le fichier est ouvert en mode r, il ne vous permettra pas den écrire et den modifier le contenu. Lorsque fopen()
ouvre un fichier avec succès, il renvoie ladresse du premier caractère du fichier, sinon il retourne NULL.
Mode « w »: Cest une écriture mode uniquement. La fonction fopen()
crée un nouveau fichier lorsque le fichier spécifié nexiste pas et si elle ne parvient pas à ouvrir le fichier, elle renvoie NULL.
Mode » a ”: En utilisant ce mode, le contenu peut être ajouté à la fin dun fichier existant. Comme le mode « w », fopen()
crée un nouveau fichier sil nexiste pas. En cas déchec de louverture, il renvoie NULL.
Le pointeur de fichier pointe vers: le dernier caractère du fichier .
Mode « r + »: Ce mode est identique au mode « r »; cependant vous pouvez effectuer diverses opérations sur le fichier ouvert dans ce mode. Vous êtes autorisé à lire, écrire et modifier le contenu du fichier ouvert en mode « r + ».
Le pointeur de fichier pointe vers: Le premier caractère du fichier.
Mode « w + »: Identique au mode « w » en dehors des opérations, qui peuvent être effectuées; le fichier peut être lu, écrit et modifié dans ce mode.
Mode « a + »: Identique au mode « a »; vous pouvez lire et ajouter les données dans le fichier, mais la modification du contenu nest pas autorisée dans ce mode.
Lire un fichier
Pour lire le fichier, nous devons dabord louvrir en utilisant du mode, par exemple si vous souhaitez uniquement lire le fichier puis louvrir en mode « r ». En fonction du mode sélectionné lors de louverture du fichier, nous sommes autorisés à effectuer certaines opérations sur le fichier.
C Programme pour lire un fichier
fgetc (): Cette fonction lit le caractère à partir de la position actuelle du pointeur et, en cas de lecture réussie, déplace le pointeur sur le caractère suivant du fichier. Une fois que les pointeurs atteignent la fin du fichier , cette fonction renvoie EOF (End of File). Nous avons utilisé EOF dans notre programme pour déterminer la fin du fichier.
Ecriture dans un fichier
Pour écrire le fichier, nous doit ouvrir le fichier dans un mode qui prend en charge lécriture. Par exemple, si vous ouvrez un fichier en mode « r », vous ne pourrez pas lécrire car « r » est un mode lecture seule qui autorise uniquement la lecture.
Exemple: C Programme à écrire le fichier
Ce programme demande à lutilisateur de saisir un caractère et écrit ce caractère à la fin du fichier. Si le fichier nexiste pas alors ce programme créera un fichier avec le nom spécifié et écrit le caractère dentrée dans le fichier.
Fermeture dun fichier
fclose(fp);
La fonction fclose () est utilisée pour fermer un fichier ouvert. Comme argument, vous devez fournir un pointeur vers le fichier que vous souhaitez fermer.
Un exemple pour montrer lopération Ouvrir, lire, écrire et fermer en C
Comment lire / écrire (E / S) Chaînes dans les fichiers – fgets & fputs
Ici, nous verrons comment lire et écrire des chaînes dans un fichier.
char *fgets(char *s, int rec_len, FILE *fpr)
s: Tableau de caractères pour stocker les chaînes.
rec_len: Longueur de lenregistrement dentrée.
fpr: Pointeur vers le fichier dentrée.
Prenons un exemple:
Exemple pour lire les chaînes dun fichier en programmation C
Dans lexemple ci-dessus, nous avons utilisé la fonction fgets comme celle-ci:
fgets(str, 10, fpr)
Ici, str représente la chaîne (tableau de caractères) dans laquelle vous stockez la chaîne après lavoir lue à partir du fichier.
10 est la longueur de la chaîne qui doit être lu à chaque fois.
fpr est un pointeur vers le fichier, qui va être lu.
Pourquoi jai utilisé if (fgets (str, 10, fpr) == NULL comme logique pour déterminer end du fichier?
Dans les exemples ci-dessus, nous avons utilisé ch == EOF pour connaître la fin du fichier. Ici, nous avons utilisé cette logique car fgets renvoie NULL lorsquil ny a plus denregistrements disponibles à lire .
Programme C – Ecriture dune chaîne dans un fichier
int fputs ( const char * s, FILE * fpw );
char *s
– Tableau de char.
FILE *fpw
– Pointeur (de type FILE) vers le fichier, qui va être écrit.
fputs prend deux arguments –
fputs(str, fpw)
str – str représente le tableau dans lequel la chaîne est stockée.
fpw – FILE pointeur vers le fichier de sortie, dans lequel lenregistrement doit être écrit.
Point à noter sur les fputs:
fputs par défaut najoute pas de nouvelle ligne après lécriture de chaque enregistrement, afin de le faire manuellement – vous pouvez avoir linstruction suivante après chaque écriture dans le fichier.
fputs("\n", fpw);
E / S FILE C pour les fichiers binaires
Jusquà présent, nous avons appris les opérations sur les fichiers sur les fichiers texte, que se passe-t-il si les fichiers sont binaires (comme le fichier .exe). Les programmes ci-dessus ne fonctionnent pas pour les fichiers binaires, mais il y a un changement mineur dans la gestion des fichiers binaires. La principale différence est le nom du fichier & modes. Permet de comprendre cela à laide dun exemple. Disons que jai deux fichiers binaires bin1.exe & bin2.exe – Je veux copier le contenu de bin1.exe vers bin2.exe:
Exemple: Lecture et écriture de fichiers binaires en C
Remarque: les modes douverture de fichier sont « rb » et « wb » au lieu de « r » & « w » ..