Gestion de fichiers C
Un fichier peut être utilisé pour stocker un grand volume de données persistantes. Comme beaucoup dautres langages, « C » fournit les fonctions de gestion de fichiers suivantes,
- Création dun fichier
- Ouverture dun fichier
- Lecture dun fichier
- Ecrire dans un fichier
- Fermer un fichier
Voici les fonctions de gestion de fichiers les plus importantes disponibles dans « C »,
fonction | objectif |
fopen () | Créer un fichier ou ouvrir un fichier existant |
fclose () | Fermer un fichier |
fprintf () | Ecriture dun bloc de données dans un fichier |
fscanf () | Lecture dun bloquer les données dun fichier |
getc () | Lit un seul caractère dun fichier |
putc () | Ecrit un seul caractère dans un fichier |
getw () | Lit un entier dans un fichier |
putw () | Ecrire un entier dans un fichier |
fseek () | Définit la position dun pointeur de fichier vers un emplacement spécifié |
ftell () | Renvoie la position actuelle de un pointeur de fichier |
rewind () | Définit le pointeur de fichier au début dun fichier |
Dans ce tutoriel, vous apprendrez-
- Comment créer un fichier
- Comment fermer un fichier:
- Ecrire dans un fichier
- Fonction fputc ():
- Fonction fputs ():
- fprintf () Fonction:
- Lecture de données à partir dun fichier
- Lecture et écriture dun fichier interactif avec getc et putc
Comment créer un fichier
Chaque fois que vous souhaitez travailler avec un fichier, la première étape consiste à créer un fichier. Un fichier nest rien dautre quun espace dans une mémoire où les données sont stockées.
Pour créer un fichier dans un programme « C », la syntaxe suivante est utilisée,
FILE *fp;fp = fopen ("file_name", "mode");
Dans la syntaxe ci-dessus, le fichier est un structure de données définie dans la bibliothèque standard.
fopen est une fonction standard utilisée pour ouvrir un fichier.
- Si le fichier nest pas présent sur le système, il est créé puis ouvert.
- Si un fichier est déjà présent sur le système, il est directement ouvert en utilisant cette fonction.
fp est un pointeur de fichier qui pointe vers le fichier de type.
Chaque fois que vous ouvrez ou créez un fichier, vous devez spécifier ce que vous allez faire avec le fichier. Un fichier en programmation « C » peut être créé ou ouvert à des fins de lecture / écriture. Un mode est utilisé pour spécifier si vous souhaitez ouvrir un fichier à lune des fins ci-dessous. Voici les différents types de modes de programmation « C » qui peuvent être utilisés tout en travaillant avec un fichier.
Mode fichier | Description |
r | Ouvre un fichier en lecture. Si un fichier est en mode lecture, aucune donnée nest supprimée si un fichier est déjà présent sur un système. |
w | Ouvre un fichier pour lécriture. Si un fichier est en mode écriture, un nouveau fichier est créé si un fichier n’existe pas du tout. Si un fichier est déjà présent sur un système, toutes les données qu’il contient sont tronquées et il est ouvert pour l’écriture. |
a | Ouvre un fichier en mode d’ajout. Si un fichier est en mode d’ajout, le fichier est ouvert. Le contenu du fichier ne change pas. |
r + | ouvert en lecture et en écriture depuis le début |
w + | ouvert pour lecture et écriture, écrasement dun fichier |
a + | ouvert pour lecture et écriture, ajout au fichier |
Dans la syntaxe donnée, le nom de fichier et le mode sont spécifiés sous forme de chaînes et doivent donc toujours être entre guillemets.
Exemple:
#include <stdio.h>int main() {FILE *fp;fp = fopen ("data.txt", "w");}
Sortie:
Le fichier est créé dans le même dossier où vous avez enregistré votre code .
Vous pouvez spécifier le chemin où vous souhaitez créer votre fichier
#include <stdio.h>int main() {FILE *fp;fp = fopen ("D://data.txt", "w");}
Comment fermer un fichier
Il faut toujours fermer un fichier à la fin des opérations sur le fichier. Cela signifie que le contenu et les liens vers le fichier sont terminés. Cela évite dendommager accidentellement le fichier.
« C » fournit la fonction fclose pour effectuer une opération de fermeture de fichier. La syntaxe de fclose est la suivante,
fclose (file_pointer);
Exemple:
FILE *fp;fp = fopen ("data.txt", "r");fclose (fp);
Le fclose function prend un pointeur de fichier comme argument. Le fichier associé au pointeur de fichier est ensuite fermé à laide de la fonction fclose.Il renvoie 0 si la fermeture a réussi et EOF (fin du fichier) sil y a une erreur lors de la fermeture du fichier.
Après avoir fermé le fichier, le même pointeur de fichier peut également être utilisé avec dautres fichiers.
Dans la programmation « C », les fichiers sont automatiquement fermés lorsque le programme est terminé. La fermeture manuelle dun fichier en écrivant la fonction fclose est une bonne pratique de programmation.
Ecrire dans un fichier
En C, lorsque vous écrivez dans un fichier, les caractères de nouvelle ligne « \ n » doivent être explicitement ajoutés.
La bibliothèque stdio offre les fonctions nécessaires pour écrire dans un fichier:
- fputc (char, file_pointer): Elle écrit un caractère dans le fichier pointé par file_pointer.
- fputs (str, file_pointer): Il écrit une chaîne dans le fichier pointé par file_pointer.
- fprintf (file_pointer, str, variable_lists): Il imprime une chaîne dans le fichier pointé par file_pointer. La chaîne peut éventuellement inclure des spécificateurs de format et une liste de variables variables_lists.
Le programme ci-dessous montre comment écrire dans un fichier:
Fonction fputc ():
Sortie:
Le programme ci-dessus écrit un seul caractère dans le fichier fputc_test.txt jusquà ce quil atteigne le symbole de ligne suivant « \ n » qui indique que la phrase a été écrite avec succès. Le processus consiste à prendre chaque caractère du tableau et à lécrire dans le fichier.
- Dans le programme ci-dessus, nous avons créé et ouvert un fichier appelé fputc_test.txt en mode écriture et déclarons notre chaîne qui sera écrite dans le fichier.
- Nous faisons une opération décriture caractère par caractère en utilisant la boucle for et mettons chaque caractère dans notre fichier jusquà ce que le « \ n « caractère est rencontré puis le fichier est fermé en utilisant la fonction fclose.
Fonction fputs ():
SORTIE:
- Dans le programme ci-dessus, nous avons créé et ouvert un fichier appelé fputs_test.txt en mode écriture.
- Après avoir effectué une opération décriture en utilisant la fonction fputs () en écrivant trois chaînes différentes
- Ensuite, le fichier est fermé en utilisant la fonction fclose.
Fonction fprintf ():
SORTIE:
- Dans le programme ci-dessus, nous avons créé et ouvert un fichier appelé fprintf_test.txt en mode écriture.
- Après quune opération décriture est effectuée à laide de la fonction fprintf () en écrivant une chaîne, le fichier est fermé à laide de la fonction fclose.
Lecture de données à partir dun fichier
Il existe trois fonctions différentes dédiées à la lecture des données dun fichier
- fgetc (file_pointer): Il renvoie le caractère suivant du fichier pointé par le pointeur de fichier. Lorsque la fin du fichier est atteinte, lEOF est renvoyé.
- fgets (buffer, n, file_pointer): Il lit n-1 caractères du fichier et stocke la chaîne dans un tampon dans lequel le caractère NULL « \ 0 » est ajouté comme dernier caractère.
- fscanf (file_pointer, conversion_specifiers, variable_adresses): Il est utilisé pour analyser et analyser les données. Il lit les caractères du fichier et affecte lentrée à une liste de pointeurs de variables variable_adresses à laide de spécificateurs de conversion. Gardez à lesprit que comme avec scanf, fscanf arrête de lire une chaîne lorsquun espace ou une nouvelle ligne est rencontré.
Le programme suivant montre la lecture à partir du fichier fputs_test.txt en utilisant fgets (), fscanf () et Fonctions fgetc () respectivement:
Résultat:
- Dans le programme ci-dessus, nous avons ouvert le fichier appelé « fprintf_test.txt » qui a été précédemment écrit en utilisant la fonction fprintf (), et il contient la chaîne « Learning C with Guru99 ». Nous le lisons en utilisant la fonction fgets () qui lit ligne par ligne où la taille du tampon doit être suffisante pour gérer toute la ligne.
- Nous rouvrons le fichier pour réinitialiser le fichier du pointeur pour quil pointe au début du déposer. Créez diverses variables de chaînes pour gérer chaque mot séparément. Imprimez les variables pour voir leur contenu. Le fscanf () est principalement utilisé pour extraire et analyser les données dun fichier.
- Rouvrir le fichier pour réinitialiser le fichier du pointeur pour quil pointe au début du fichier. Lisez les données et imprimez-les à partir du fichier caractère par caractère en utilisant la fonction getc () jusquà ce que linstruction EOF soit rencontrée
- Après avoir effectué une opération de lecture du fichier en utilisant différentes variantes, nous avons à nouveau fermé le fichier en utilisant la fonction fclose. / li>
Lecture et écriture de fichiers interactifs avec getc et putc
Ce sont les opérations de fichiers les plus simples. Getc signifie get character et putc signifie put character. Ces deux fonctions sont utilisées pour gérer un seul caractère à la fois.
Le programme suivant montre les fonctions de gestion des fichiers dans la programmation « C »:
Sortie:
- Dans le programme ci-dessus, nous ont créé et ouvert un fichier appelé demo en mode écriture.
- Après une opération décriture, le fichier est fermé à laide de la fonction fclose.
- Nous avons à nouveau ouvert un fichier qui contient désormais des données en mode lecture. Une boucle while sexécutera jusquà ce que leof soit trouvé. Une fois la fin du fichier trouvée, lopération sera terminée et les données seront affichées à laide de la fonction printf.
- Après avoir effectué une opération de lecture, le fichier est à nouveau fermé à laide de la fonction fclose.
Résumé
- Un fichier est un espace dans une mémoire où des données sont stockées.
- « C « La programmation fournit diverses fonctions pour traiter un fichier.
- Un mécanisme de manipulation des fichiers est appelé gestion de fichiers.
- Un fichier doit être ouvert avant deffectuer des opérations sur celui-ci.
- Un fichier peut être ouvert en mode lecture, écriture ou ajout.
- Les fonctions Getc et putc sont utilisées pour lire et écrire un seul caractère.
- Le la fonction fscanf () permet de lire et danalyser les données dun fichier
- On peut lire (en utilisant la fonction getc) un fichier entier en bouclant pour couvrir tout le fichier jusquà ce que lEOF soit rencontré
- On peut écrire dans un fichier après avoir créé son nom, en utilisant la fonction fprintf () et il doit avoir le newl caractère ine à la fin de la chaîne de texte.