Comment lire et écrire dans un fichier en C++

How Read Write File C



Dans cet article, nous allons vous montrer comment lire et écrire dans un fichier dans le langage de programmation C++ en utilisant plusieurs exemples. Pour comprendre les opérations de fichier C++ telles que la lecture et l'écriture, nous devons d'abord comprendre le concept de flux en C++.

Qu'est-ce qu'un flux ?

Un flux est simplement un flux de données ou de caractères. Il existe deux types de flux : les flux d'entrée et les flux de sortie. Un flux d'entrée est utilisé pour lire les données à partir d'un périphérique d'entrée externe tel qu'un clavier, tandis qu'un flux de sortie est utilisé pour écrire des données sur le périphérique de sortie externe tel qu'un moniteur. Un fichier peut être considéré à la fois comme une source d'entrée et de sortie.









En C++, nous utilisons un flux pour envoyer ou recevoir des données vers ou depuis une source externe.



Nous pouvons utiliser des classes intégrées pour accéder à un flux d'entrée/sortie, c'est-à-dire ios.





Voici la hiérarchie des classes de flux du langage de programmation C++ :



Les objets cin et cout sont utilisés pour lire les données du clavier et pour afficher la sortie sur le moniteur, respectivement. De plus, ifstream, qui signifie flux de fichier d'entrée, est utilisé pour lire un flux de données à partir d'un fichier, et ofstream, qui signifie flux de fichier de sortie, est utilisé pour écrire un flux de données dans un fichier.

Le fichier iostram.h contient toutes les classes de flux d'entrée/sortie standard requises dans le langage de programmation C++.

Exemples

Maintenant que vous comprenez les bases des flux, nous allons discuter des exemples suivants pour vous aider à mieux comprendre les opérations sur les fichiers en C++ :

  • Exemple 1 : Ouvrir et fermer un fichier
  • Exemple 2 : Écrire dans un fichier
  • Exemple 3 : Lire à partir d'un fichier
  • Exemple 4 : lire et écrire dans un fichier
  • Exemple 5 : lire et écrire dans un fichier binaire

Exemple 1 : Ouvrir et fermer un fichier

Dans cet exemple de programme, nous montrerons comment ouvrir/créer un fichier et comment fermer le fichier en C++. Comme vous pouvez le voir dans le programme ci-dessous, nous avons inclus la bibliothèque requise pour les opérations sur les fichiers.

Pour ouvrir et fermer un fichier, nous avons besoin d'un objet ofstream. Ensuite, pour lire ou écrire dans un fichier, nous devons ouvrir le fichier. Nous avons inclus le fichier d'en-tête fstream à la ligne numéro 1 afin que nous puissions accéder à la classe ofstream.

Nous avons déclaré un myFile_Handler comme objet ofstream dans la fonction main. Nous pouvons alors utiliser la fonction open() pour créer un fichier vide et la fonction close() pour fermer le fichier.

#comprendre

à l'aide de espace de nomsles heures;

entierprincipale()
{
ofstream myFile_Handler;

// Fichier ouvert
myFile_Handler.ouvert('Fichier_1.txt');

// Fermeture du fichier
myFile_Handler.proche();
revenir 0;
}

Maintenant, nous allons compiler le programme et examiner la sortie. Comme vous pouvez le voir dans la fenêtre de sortie ci-dessous, le fichier File_1.txt a été créé après l'exécution du programme. La taille du fichier est nulle puisque nous n'avons écrit aucun contenu dans le fichier.

Exemple 2 : Écrire dans un fichier

Dans l'exemple de programme précédent, nous vous avons montré comment ouvrir un fichier et comment fermer le fichier. Maintenant, nous allons vous montrer comment écrire quelque chose dans un fichier.

Nous pouvons écrire dans un fichier en utilisant l'opérateur d'insertion de flux, c'est-à-dire,<<. In this program, we have used the file handler and insertion operator to write two lines in the file. The insertion operator (<<) indicates that we are inserting the string into the output file stream object.

#comprendre

à l'aide de espace de nomsles heures;

entierprincipale()
{
ofstream myFile_Handler;
// Fichier ouvert
myFile_Handler.ouvert('Fichier_1.txt');

// Écrire dans le fichier
myFile_Handler<< 'Ceci est un exemple de fichier de test. ' <<fin;
myFile_Handler<< 'Ceci est la deuxième ligne du fichier. ' <<fin;

// Fermeture du fichier
myFile_Handler.proche();
revenir 0;
}

Maintenant, nous allons compiler le programme ci-dessus et l'exécuter. Comme vous pouvez le voir ci-dessous, nous avons écrit avec succès dans le fichier File_1.txt.

Exemple 3 : Lire à partir d'un fichier

Dans les exemples précédents, nous vous avons montré comment écrire du contenu dans un fichier. Maintenant, lisons le contenu du fichier que nous avons créé dans l'exemple-2 et affichons le contenu sur le périphérique de sortie standard, c'est-à-dire le moniteur.

Nous utilisons la fonction getline() pour lire la ligne complète du fichier, puis couter pour imprimer la ligne sur le moniteur.

#comprendre
#comprendre
#comprendre

à l'aide de espace de nomsles heures;

entierprincipale()
{
ifstream myFile_Handler;
chaîne maLigne;

// Fichier ouvert en mode lecture
myFile_Handler.ouvert('Fichier_1.txt');

si(myFile_Handler.est ouvert())
{
// Continuez à lire le fichier
tandis que(obtenir la ligne(myFile_Handler, maLigne))
{
// imprime la ligne sur la sortie standard
cout <<maLigne<<fin;
}
// Fermeture du fichier
myFile_Handler.proche();
}
autre
{
cout << 'Impossible d'ouvrir le fichier !';
}
revenir 0;
}

Maintenant, nous allons imprimer le contenu de File_1.txt en utilisant la commande suivante : cat File_1.txt. Une fois que nous avons compilé et exécuté le programme, il est clair que la sortie correspond au contenu du fichier. Par conséquent, nous avons lu avec succès le fichier et imprimé le contenu du fichier sur le moniteur.

Exemple 4 : lire et écrire dans un fichier

Jusqu'à présent, nous vous avons montré comment ouvrir, lire, écrire et fermer un fichier. En C++, nous pouvons également lire et écrire dans un fichier en même temps. Pour lire et écrire dans un fichier, nous devons obtenir un objet fstream et ouvrir le fichier en mode ios::in et ios::out.

Dans cet exemple, nous écrivons d'abord du contenu dans le fichier. Ensuite, nous lisons les données du fichier et les imprimons sur le moniteur.

#comprendre
#comprendre
#comprendre

à l'aide de espace de nomsles heures;

entierprincipale()
{
fstream myFile_Handler;
chaîne maLigne;

// Fichier ouvert
myFile_Handler.ouvert('Fichier_1.txt', ios::dans |ios::dehors);

// Vérifie si le fichier s'est ouvert
si(!myFile_Handler)
{
cout << « Le fichier ne s'est pas ouvert ! »;
sortir(1);
}

// Écrire dans le fichier
myFile_Handler<< '1. Ceci est un autre exemple de fichier de test. ' <<fin;
myFile_Handler<< '2. Il s'agit de la deuxième ligne du fichier. ' <<fin;

myFile_Handler.cherche(ios::mendier);

// Lire le fichier
si(myFile_Handler.est ouvert())
{
// Continuez à lire le fichier
tandis que(obtenir la ligne(myFile_Handler, maLigne))
{
// imprime la ligne sur la sortie standard
cout <<maLigne<<fin;
}

// Fermeture du fichier
myFile_Handler.proche();
}
autre
{
cout << 'Impossible d'ouvrir le fichier !';
}
myFile_Handler.proche();
revenir 0;
}

Maintenant, nous allons compiler et exécuter le programme.

Exemple 5 : lire et écrire dans un fichier binaire

Dans cet exemple, nous allons déclarer une classe puis écrire l'objet dans un fichier binaire. Pour simplifier cet exemple, nous avons déclaré la classe Employee avec une variable publique emp_id. Ensuite, nous lirons le fichier binaire et imprimerons la sortie sur le moniteur.

#comprendre
#comprendre

à l'aide de espace de nomsles heures;

classerEmployé
{
Publique:
entieremp_id;
};

entierprincipale()
{
ofstream binOutFile_Handler;
ifstream binInFile_Handler;

Employé empObj_W, empObj_R;

// Fichier ouvert
binOutFile_Handler.ouvert('employé.dat', ios::dehors |ios::binaire);

// Vérifie si le fichier s'est ouvert
si(!binOutFile_Handler)
{
cout << « Le fichier ne s'est pas ouvert ! »;
sortir(1);
}

// Initialiser empObj_W
empObj_W.emp_id = 1512;

// Écrire dans le fichier
binOutFile_Handler.écrivez((carboniser *) &empObj_W,taille de(Employé));
binOutFile_Handler.proche();

si(!binOutFile_Handler.bon())
{
cout << 'Une erreur s'est produite lors de l'écriture du fichier binaire !' <<fin;
sortir(2);
}

// Maintenant, lisons le fichier employee.dat
binInFile_Handler.ouvert('employé.dat', ios::dans |ios::binaire);
// Vérifie si le fichier s'est ouvert
si(!binInFile_Handler)
{
cout << « Le fichier ne s'est pas ouvert ! »;
sortir(3);
}

// Lecture du contenu du fichier binaire
binInFile_Handler.lire((carboniser *) &empObj_R,taille de(Employé));
binInFile_Handler.proche();

si(!binInFile_Handler.bon())
{
cout << 'Une erreur s'est produite lors de la lecture du fichier binaire !' <<fin;
sortir(4);
}

// Affiche la sortie de empObj_R
cout << 'Coordonnées de l'employé :' <<fin;
cout << 'ID de l'employé :' <<empObj_R.emp_id <<fin;

revenir 0;
}

Conclusion

Les fichiers sont principalement utilisés pour stocker les données et jouent un rôle important dans la programmation du monde réel. Dans cet article, nous vous avons montré comment utiliser diverses opérations sur les fichiers avec le langage de programmation C++ en travaillant sur plusieurs exemples. De plus, nous vous avons montré comment lire et écrire des données dans des fichiers texte et des fichiers binaires.