Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies.


Politique de confidentialité

La gestion des fichiers en C++

La gestion des fichiers en C++

Les fichiers sont utilisés pour stocker des données dans un support de stockage de manière permanente. La gestion des fichiers fournit un mécanisme permettant de stocker la sortie d'un programme dans un fichier et d'y effectuer diverses opérations.

Un flux est une abstraction qui représente un périphérique sur lequel des opérations d'entrée et de sortie sont effectuées. Un flux fait référence à une séquence d'octets.

Pour gérer le flux dans votre programme, vous devez inclure le fichier d'en-tête <fstream>

La bibliothèque fstream fournit aux programmeurs C++ trois classes pour travailler avec des fichiers. Ces classes comprennent :

  •  ofstream : Cette classe représente un flux de sortie. Elle est utilisée pour créer des fichiers et écrire des données dans des fichiers.
  •  ifstream : Cette classe représente un flux d'entrée. Elle est utilisée pour lire les données des fichiers.
  •  fstream : Cette classe représente généralement un flux de fichiers. Elle joue le rôle de classes ofstream/ifstream. Cela signifie qu'elle est capable de créer des fichiers, d'écrire dans des fichiers, de lire des fichiers.

Les trois classes ci-dessus sont dérivées de fstream et de la classe iostream correspondante et sont conçues spécifiquement pour gérer les fichiers disque.

C++ fournit les opérations suivantes dans la gestion des fichiers :

  •  open() : création d'un fichier
  •  read() : lecture des données
  •  write : écriture de nouvelles données
  •  close() : Fermeture d'un fichier
Remarque ! Dans ce cours, nous utiliserons ftream pour manipuler des fichiers, mais si vous souhaitez effectuer une opération spécifique (lecture ou écriture), vous pouvez utiliser les autres classes (ofstream ou ifstream), et les fonctions sont les mêmes.

Créer et ouvrir un fichier


Nous créons/ouvrons un fichier en spécifiant le chemin du fichier et le mode d'opération. Les opérations peuvent être la lecture, l'écriture, l'ajout et la troncature.

open(nom_fichier, mode);

Voici les différents modes pour ouvrir un fichier

  •  ios::app - Le mode ajout(append). La sortie envoyée au fichier lui est ajoutée à la fin.
  •  ios::ate - Ouvrir un fichier pour la sortie et déplacer le contrôle de lecture/écriture à la fin du fichier.
  •  ios::in - Ouvrir un fichier pour la lecture.
  •  ios::out - Ouvrir un fichier en écriture.
  •  ios::trunc - Si le fichier existe déjà, son contenu sera tronqué avant d'ouvrir le fichier.

Il est possible d'utiliser deux modes en même temps. Vous les combinez en utilisant le l'opérateur logique  |  (OU).

#include <iostream>
#include <fstream>
using namespace std;

int main() {
	fstream fichier;
	fichier.open("etd.txt", ios::out);
	if (!fichier) {
		cout << "Fichier non cree!";
	}
	else {
		cout << "Fichier cree avec succes!";

      // fermer le fichier
		fichier.close(); 
	}
	return 0;
}
                                                

Fermer un fichier


Une fois qu'un programme C++ se termine, il

  •  Vide le flux
  •  Libère la mémoire allouée
  •  Ferme les fichiers ouverts.

Cependant, en tant que programmeur, vous devez apprendre à fermer les fichiers ouverts avant la fin du programme. Les objets fstream, ofstream et ifstream ont la fonction close() pour fermer les fichiers.

objet_fstream.close()

Lecture les données d'un fichier


Vous lisez les informations d'un fichier dans votre programme en utilisant l'opérateur d'extraction de flux (>>) tout comme vous utilisez cet opérateur pour saisir des informations à partir du clavier. La seule différence est que vous utilisez un objet ifstream ou fstream au lieu de l'objet cin.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main() {
	fstream fichier;
    string ligne;
	fichier.open("etd.txt", ios::in);
	if (!fichier) {
		cout << "Ce fichier n'existe pas";
	}
	else {
        // tandis que nous n'avons pas atteint la fin du fichier
		while (!fichier.eof())
        {
            fichier >>ligne;  // lire une ligne
            cout << ligne << endl;   // afficher la ligne lue
        }
      // fermer le fichier
		fichier.close(); 
	}
	return 0;
}
                                                
Mostafa
Ismail
Sara
Adam
                                            

écrire des données dans un fichier


Vous pouvez écrire dans un fichier directement depuis votre programme C++. Vous utilisez l'opérateur d'insertion de flux ( <<) pour cela.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main() {
	fstream fichier;
    string ligne;
	fichier.open("etd.txt", ios::out);
	if (!fichier) {
		cout << "Ce fichier n'existe pas";
	}
	else {
		
      // fournir une chaine de caractère
      cout << "Saisir une chaine de caracteres : ";
      getline(cin,ligne);

      // écrire la ligne lue dans le fichier 
      fichier << ligne;

		fichier.close(); 
	}
	return 0;
}
                                                

Une fois que l'utilisateur a saisi la chaîne "Hello from my lovely Morocco", le contenu de "etd.txt" devient

Hello from my lovely Morocco

Rédigé par ESSADDOUKI Mostafa

The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.

Partager ce cours avec tes amis :

Commentaire(s)