Comment lire un fichier texte et imprimer toutes les chaînes en C

Comment lire un fichier texte et imprimer toutes les chaînes en C

Lire un fichier texte et imprimer tout cordes est une tâche clé qui est fréquemment effectuée par les programmeurs C. Il est important de comprendre les bases de en lisant un fichier texte en C et comment imprimer le cordes De là avant d'essayer cette tâche.

La lecture d'un fichier texte et de l'impression de toutes les chaînes qu'il contient sera démontrée en utilisant la programmation C dans cet article.

Lisez un fichier texte et imprimez toutes les chaînes en C

Il existe quatre fonctions pour lire un fichier texte et imprimer toutes les chaînes en C, qui sont les suivantes:

  • fread ()
  • fgets ()
  • fscanf ()
  • fGetc ()

Méthode 1: fonction Fread ()

Les données sont Lire dans le fichier et stocké dans un tampon en utilisant la fonction C fread (). Afin de compter les éléments dans un tampon de tableau, le fread () La méthode se lit à partir du flux d'entrée fourni comme paramètre de fonction. Au fur et à mesure que chaque fonction de caractères se lit, l'indicateur de position du fichier pour le flux d'entrée spécifié avance.

Le fread () Méthode en C a la syntaxe.

size_t Fread (void * array_buffer, size_t size, count_t, fichier * file_stream)

Regardons les paramètres de la fonction Fread () plus en détail:

Tampon de tableau: Les données sont temporairement maintenues dans le tampon d'un ordinateur, un espace mémoire. Cet argument est un pointeur faisant référence à la place en mémoire du tampon qui contiendra les données lire à partir du flux d'entrée.

taille: Cet argument instruit la fonction du nombre d'octets de données lus à partir du flux d'entrée pour chaque bloc.

compter: Il spécifie le nombre de caractères que les caractères seront lus à partir du flux d'entrée de données.

file_stream: C'est un pointeur faisant référence à un objet de fichier.

#inclure
#inclure
int main()
Fichier * fichier;
tampon char [100];
file = fopen ("c_file.txt "," r ");
if (file == null)
printf ("Erreur: ne peut pas ouvrir le fichier \ n");
retour 1;

int count = Fread (& tampon, sizeof (char), 100, fichier);
fclose (fichier);
printf ("Les données lues dans le fichier sont:% s \ n", tampon);
printf ("Nombre d'éléments lus:% d", count);
fclose (fichier);
retour 0;

Dans cet exemple, nous définissons un tampon de taille de tableau de caractères de taille 100 Avant d'utiliser fopen () Pour ouvrir le fichier texte C_file.SMS en mode lecture. À l'aide d'une instruction IF, nous déterminons si le fichier a été ouvert avec succès. L'étape suivante consiste à lire 100 octets de données du fichier en utilisant fread (). Le tampon cible, dans ce cas le tableau de tampon, est le premier paramètre à fread (). Le deuxième argument, taille de, détermine la taille de chaque élément à lire comme nous lisons en caractères. La troisième entrée est la quantité à lire, qui dans ce cas est 100. Le pointeur de fichiers est le quatrième paramètre. Enfin, nous utilisons printf () Pour imprimer les données lues dans le fichier et fclose () Pour fermer le fichier. L'exécution de ce programme entraînerait des résultats comme celui-ci, si C_file.SMS:

Sortir

Méthode 2: fonction fgets ()

La langue C fgets () La méthode lit n caractères du flux dans la chaîne str. Le fgets () La méthode continue de lire les caractères du flux jusqu'à (n-1) Les caractères ont été lus, un caractère de Newline a été détecté, ou la fin du fichier (EOF) a été atteinte.

#inclure
int main()
Fichier * fichier;
tampon char [100];
file = fopen ("c_file.txt "," r ");
if (file == null)
printf ("Erreur: ne peut pas ouvrir le fichier \ n");
retour 1;

while (fgets (tampon, 100, fichier))
printf ("String Read From File:% S", Buffer);

fclose (fichier);
retour 0;

Cet exemple utilise fopen () Pour ouvrir un fichier texte appelé C_file.SMS en mode lecture après avoir déclaré d'abord un tampon de tableau de caractères de taille 100. À l'aide d'une instruction IF, nous déterminons si le fichier a été ouvert avec succès. Après cela, nous employons une boucle de temps et fgets () Pour lire les lignes de texte à partir du fichier à l'aide d'un pointeur de fichier. En utilisant printf () Dans la boucle, nous imprimons chaque ligne de texte. L'exécution de ce programme fournirait la sortie:

Sortir

Méthode 3: fonction fscanf ()

Une méthode de bibliothèque standard appelée fscanf () accepte un tableau de paramètres et les transforme en valeurs que votre application peut utiliser. Alors que Lire à partir du fichier, il renverra la chaîne de format à la place de tout ce qu'il prévoit de voir. Pour empêcher votre logiciel d'interpréter la chaîne de format dans le cadre de sa propre syntaxe, il doit être entouré de devis («»).

#inclure
int main()
Fichier * fichier;
int num1, num2, num3;
file = fopen ("c_file.txt "," r ");
if (file == null)
printf ("Erreur: ne peut pas ouvrir le fichier \ n");
retour 1;

fscanf (fichier, "% d% d% d", & num1, & num2, & num3);
printf ("Les nombres lus dans le fichier sont:% d,% d,% d \ n", num1, num2, num3);
fclose (fichier);
retour 0;

Cet exemple ouvre le fichier C_file.SMS en mode lecture en déclarant d'abord 3 variables int, num1, num2 et num3. À l'aide d'une instruction IF, nous déterminons si le fichier a été ouvert avec succès. L'étape suivante consiste à lire trois numéros du fichier en utilisant fscanf () et le %d spécificateur de format. Les variables NUM1, NUM2 et NUM3 sont là où les valeurs sont conservées. Enfin, nous utilisons printf () pour produire les valeurs de ces variables et fclose () Pour fermer le fichier. L'exécution de ce programme aboutirait les résultats ci-dessous:

Sortir

Méthode 4: fonction fGetc ()

Un fichier peut être lire caractère par caractère utilisant le fGetc () fonction. Le code ASCII pour le caractère que cette fonction lit est renvoyé par cette fonction. Le caractère de l'emplacement spécifié du pointeur de fichier est retourné. Le caractère suivant est lu une fois le personnage lu, selon le pointeur de fichier. Cette méthode renvoie un fichier EOF si le pointeur est à la fin du fichier ou s'il y a un problème.

#inclure
int main()
Fichier * fichier;
Char C;
file = fopen ("c_file.txt "," r ");
if (file == null)
printf ("Erreur: ne peut pas ouvrir le fichier \ n");
retour 1;

while ((c = fGetc (fichier)) != Eof)
printf ("% c", c);

fclose (fichier);
retour 0;

Dans ce cas, nous utilisons le fopen () commande pour ouvrir le fichier texte C_file.SMS en mode lecture. À l'aide d'une instruction IF, nous déterminons si le fichier a été ouvert avec succès. Après cela, nous employons une boucle de temps et fGetc () pour lire les caractères du fichier. Le caractère reçu du fichier est affecté à la variable c à l'intérieur de la boucle avant d'être imprimé en utilisant printf (). La boucle continue de fonctionner jusqu'à ce que Eof (Fin du fichier) Constant détecte la fin du fichier. L'exécution de ce programme obtiendrait les résultats suivants, si C_file.SMS contient le mot "Linuxhint".

Sortir

Conclusion

En utilisant les étapes décrites ci-dessus, C peut être utilisé pour Lire un fichier texte et Imprimer toutes les cordes il contient. Il commence par utiliser le fopen () Appel système pour ouvrir le fichier, suivi de l'utilisation de fscanf (), fread (), fgets (), fGetc () Pour lire les données. Ensuite, le fichier est fermé en utilisant fclose () Et une boucle pour une boucle est utilisée pour imprimer les cordes. En utilisant ces techniques, C peut être utilisé pour aider à lire et à imprimer des données de manière efficace.