C++

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

Comment lire et écrire dans un fichier en 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++ comme 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, je.e., "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 « input file stream », est utilisé pour lire un flux de données à partir d'un fichier, et « ofstream », qui signifie « output file stream », est utilisé pour écrire un flux de données. dans un fichier.

L'« 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

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 en tant qu'objet ofstream dans la fonction main. On peut alors utiliser la fonction open() pour créer un fichier vide et la fonction close() pour fermer le fichier.

#inclure
en utilisant l'espace de noms std ;
int main()

ofstream myFile_Handler;
// Fichier ouvert
myFile_Handler.open("Fichier_1.SMS");
// Fermeture du fichier
myFile_Handler.Fermer();
renvoie 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 "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, je.e., "<<”. 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.

#inclure
en utilisant l'espace de noms std ;
int main()

ofstream myFile_Handler;
// Fichier ouvert
myFile_Handler.open("Fichier_1.SMS");
// Écrire dans le fichier
myFile_Handler << "This is a sample test File. " << endl;
myFile_Handler << "This is the second line of the file. " << endl;
// Fermeture du fichier
myFile_Handler.Fermer();
renvoie 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.SMS.

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, i.e., le moniteur.

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

#inclure
#inclure
#inclure
en utilisant l'espace de noms std ;
int main()

ifstream myFile_Handler;
chaîne maLigne;
// Fichier ouvert en mode lecture
myFile_Handler.open("Fichier_1.SMS");
if(myFile_Handler.est ouvert())

// Continuez à lire le fichier
while(getline(myFile_Handler, myLine))

// imprime la ligne sur la sortie standard
cout << myLine << endl;

// Fermeture du fichier
myFile_Handler.Fermer();

autre

cout << "Unable to open the file!";

renvoie 0 ;

Maintenant, nous allons imprimer le contenu de File_1.txt à l'aide de la commande suivante :  cat File_1.SMS. 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++, on peut aussi 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.

#inclure
#inclure
#inclure
en utilisant l'espace de noms std ;
int main()

fstream myFile_Handler;
chaîne maLigne;
// Fichier ouvert
myFile_Handler.open("Fichier_1.txt", ios::in | ios::out);
// Vérifie si le fichier s'est ouvert
si(!myFile_Handler)

cout << "File did not open!";
sortie(1);

// Écrire dans le fichier
myFile_Handler << "1. This is another sample test File. " << endl;
myFile_Handler << "2. This is the second line of the file. " << endl;
myFile_Handler.seekg(ios::beg);
// Lire le fichier
if(myFile_Handler.est ouvert())

// Continuez à lire le fichier
while( getline(myFile_Handler, myLine))

// imprime la ligne sur la sortie standard
cout << myLine << endl;

// Fermeture du fichier
myFile_Handler.Fermer();

autre

cout << "Unable to open the file!";

myFile_Handler.Fermer();
renvoie 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 allons lire le fichier binaire et imprimer la sortie sur le moniteur.

#inclure
#inclure
en utilisant l'espace de noms std ;
classe Employé

Publique:
int emp_id;
 ;
int main()

ofstream binOutFile_Handler ;
ifstream binInFile_Handler;
Employé empObj_W, empObj_R;
// Fichier ouvert
binOutFile_Handler.open("Employé.dat", ios::out | ios::binary);
// Vérifie si le fichier s'est ouvert
si(!binOutFile_Handler)

cout << "File did not open!";
sortie(1);

// Initialiser empObj_W
empObj_W.emp_id = 1512 ;
// Écrire dans le fichier
binOutFile_Handler.write((char *) &empObj_W, sizeof(Employee));
binOutFile_Handler.Fermer();
si(!binOutFile_Handler.bien())

cout << "Error occured during writing the binary file!" << endl;
sortie(2);

// Maintenant, lisons l'employé.fichier de données
binInFile_Handler.open("Employé.dat", ios::in | ios::binary);
// Vérifie si le fichier s'est ouvert
si(!binInFile_Handler)

cout << "File did not open!";
sortie(3) ;

// Lecture du contenu du fichier binaire
binInFile_Handler.read((char *) &empObj_R, sizeof(Employee));
binInFile_Handler.Fermer();
si(!binInFile_Handler.bien())

cout << "Error occured during reading the binary file!" << endl;
sortie(4) ;

// Affiche la sortie de empObj_R
cout << "Details of the Employee : " << endl;
cout << "Employee ID : " << empObj_R.emp_id << endl;
renvoie 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.

Bataille pour Wesnoth 1.13.6 Développement publié
Bataille pour Wesnoth 1.13.6 publiée le mois dernier, est la sixième version de développement de la 1.13.x series et il apporte un certain nombre d'am...
Comment installer League Of Legends sur Ubuntu 14.04
Si vous êtes fan de League of Legends, alors c'est l'occasion pour vous de tester League of Legends. Notez que LOL est pris en charge sur PlayOnLinux ...
Installez le dernier jeu de stratégie OpenRA sur Ubuntu Linux
OpenRA est un moteur de jeu de stratégie en temps réel libre/gratuit qui recrée les premiers jeux Westwood comme le classique Command & Conquer: Red A...