La gestion de fichiers est utilisée pour stocker des données de manière permanente dans un ordinateur. Grâce à la gestion des fichiers, nous pouvons stocker nos données dans la mémoire secondaire (disque dur).
Comment réaliser la gestion des fichiers
Pour réaliser la gestion des fichiers, nous devons suivre les étapes suivantes : -
ÉTAPE 1-Nommer un fichier
ÉTAPE 2-Ouvrir un fichier
ÉTAPE 3-Écriture des données dans le fichier
ÉTAPE 4-Lecture des données du fichier
ÉTAPE 5-Fermeture d'un fichier.
Flux en C++ :-
Nous donnons une entrée au programme d’exécution et le programme d’exécution renvoie la sortie. La séquence d'octets donnée en entrée au programme en cours d'exécution et la séquence d'octets fournie en sortie du programme en cours d'exécution sont appelées flux. En d’autres termes, les flux ne sont rien d’autre que le flux de données dans une séquence.
Les opérations d'entrée et de sortie entre le programme en cours d'exécution et les périphériques tels que le clavier et le moniteur sont connues sous le nom d'opération d'E/S de console. Les opérations d'entrée et de sortie entre le programme en cours d'exécution et les fichiers sont appelées opérations d'E/S disque.
Classes pour les opérations de flux de fichiers : -
Le système d'E/S de C++ contient un ensemble de classes qui définissent les méthodes de gestion des fichiers. Il s'agit notamment des classes ifstream, ofstream et fstream. Ces classes sont dérivées de fstream et de la classe iostream correspondante. Ces classes, conçues pour gérer les fichiers disque, sont déclarées dans fstream et nous devons donc inclure ce fichier dans tout programme utilisant des fichiers.
1. iOS : -
- ios signifie flux de sortie d'entrée.
- Cette classe est la classe de base pour les autres classes de cette hiérarchie de classes.
- Cette classe contient les fonctionnalités nécessaires qui sont utilisées par toutes les autres classes dérivées pour les opérations d'entrée et de sortie.
2. istream : -
- istream signifie flux d'entrée.
- Cette classe est dérivée de la classe « ios ».
- Cette classe gère le flux d’entrée.
- L'opérateur d'extraction (>>) est surchargé dans cette classe pour gérer les flux d'entrée des fichiers vers l'exécution du programme.
- Cette classe déclare des fonctions d'entrée telles que get(), getline() et read().
3. de l'autre côté : -
- ostream signifie flux de sortie.
- Cette classe est dérivée de la classe « ios ».
- Cette classe gère le flux de sortie.
- L'opérateur d'insertion (<<) est surchargé dans cette classe pour gérer les flux de sortie vers les fichiers issus de l'exécution du programme.
- Cette classe déclare des fonctions de sortie telles que put() et write().
4. streambuf : -
cas de test Junit
- Cette classe contient un pointeur qui pointe vers le tampon utilisé pour gérer les flux d'entrée et de sortie.
5. fstreambase : -
- Cette classe fournit des opérations communes aux flux de fichiers. Sert de base pour les classes fstream, ifstream et ofstream.
- Cette classe contient les fonctions open() et close().
6. ifstream : -
- Cette classe fournit des opérations d'entrée.
- Il contient la fonction open() avec le mode de saisie par défaut.
- Hérite des fonctions get(), getline(), read(), seekg() et tellg() de istream.
7. du flux : -
- Cette classe fournit des opérations de sortie.
- Il contient la fonction open() avec le mode de sortie par défaut.
- Hérite des fonctions put(), write(), seekp() et tellp() de l'ostream.
8. fstream : -
- Cette classe prend en charge les opérations d’entrée et de sortie simultanées.
- Hérite de toutes les fonctions des classes istream et ostream via iostream.
9. fichierbuf : -
- Son but est de configurer les tampons de fichiers en lecture et en écriture.
- Nous pouvons également utiliser la fonction membre du tampon de fichier pour déterminer la longueur du fichier.
En C++, les fichiers sont principalement traités en utilisant trois classes fstream, ifstream, ofstream disponibles dans le fichier d'en-tête fstream.
du flux : Classe Stream pour écrire sur des fichiers
ifstream : Classe Stream à lire à partir de fichiers
fstream : Classe de flux pour lire et écrire depuis/vers des fichiers.

Maintenant, la première étape pour ouvrir le fichier particulier pour une opération de lecture ou d’écriture. Nous pouvons ouvrir le fichier par
1. passer le nom du fichier dans le constructeur au moment de la création de l'objet
2. en utilisant la méthode ouverte
Par ex.
Ouvrir le fichier en utilisant le constructeur
ifstream (nom de fichier const char*, ios_base::openmode mode = ios_base::in);
ifstream fin (nom de fichier, openmode) par défaut openmode = ios::in
ifstream fin(nom de fichier);Ouvrir le fichier en utilisant la méthode open
Appel du constructeur par défaut
fin du flux if;
fin.open (nom de fichier, mode ouvert)
fin.open(nom de fichier);
Modes :
| Constante de membre | Signifie | Accéder |
|---|---|---|
| dans * | saisir | Fichier ouvert en lecture : le tampon de flux interne prend en charge les opérations d'entrée. |
| dehors | sortir | Fichier ouvert en écriture : le tampon de flux interne prend en charge les opérations de sortie. |
| binaire | binaire | Les opérations sont effectuées en mode binaire plutôt qu'en mode texte. |
| a mangé | à la fin | La position de sortie commence à la fin du fichier. |
| application | ajouter | Toutes les opérations de sortie ont lieu à la fin du fichier, en s'ajoutant à son contenu existant. |
| tronc | tronquer | Tout contenu qui existait dans le fichier avant son ouverture est supprimé. |
Modes d'ouverture par défaut :
| ifstream | ios ::dans |
| de flux | ios ::sortie |
| fstream | ios::dans | ios ::sortie |
Énoncé du problème : Pour lire et écrire un fichier en C++.
Exemples:
Input : Welcome in techcodeview.com. Best way to learn things. -1 Output : Welcome in techcodeview.com. Best way to learn things.>
Vous trouverez ci-dessous la mise en œuvre en utilisant cours ifstream et ofstream .
C++
/* File Handling with C++ using ifstream & ofstream class object*/> /* To write the Content in File*/> /* Then to read the content of file*/> #include> /* fstream header file for ifstream, ofstream,> >fstream classes */> #include> using> namespace> std;> // Driver Code> int> main()> {> >// Creation of ofstream class object> >ofstream fout;> >string line;> >// by default ios::out mode, automatically deletes> >// the content of file. To append the content, open in ios:app> >// fout.open('sample.txt', ios::app)> >fout.open(>'sample.txt'>);> >// Execute a loop If file successfully opened> >while> (fout) {> >// Read a Line from standard input> >getline(cin, line);> >// Press -1 to exit> >if> (line ==>'-1'>)> >break>;> >// Write line in file> >fout << line << endl;> >}> >// Close the File> >fout.close();> >// Creation of ifstream class object to read the file> >ifstream fin;> >// by default open mode = ios::in mode> >fin.open(>'sample.txt'>);> >// Execute a loop until EOF (End of File)> >while> (getline(fin, line)) {> > >// Print line (read from file) in Console> >cout << line << endl;> >}> >// Close the file> >fin.close();> >return> 0;> }> |
>
>
Complexité temporelle : O(n)
Espace auxiliaire : O(1)
Vous trouverez ci-dessous la mise en œuvre en utilisant classe fstream .
C++
/* File Handling with C++ using fstream class object */> /* To write the Content in File */> /* Then to read the content of file*/> #include> /* fstream header file for ifstream, ofstream,> >fstream classes */> #include> using> namespace> std;> // Driver Code> int> main()> {> >// Creation of fstream class object> >fstream fio;> >string line;> >// by default openmode = ios::in|ios::out mode> >// Automatically overwrites the content of file, To append> >// the content, open in ios:app> >// fio.open('sample.txt', ios::in|ios::out|ios::app)> >// ios::trunc mode delete all content before open> >fio.open(>'sample.txt'>, ios::trunc | ios::out | ios::in);> >// Execute a loop If file successfully Opened> >while> (fio) {> >// Read a Line from standard input> >getline(cin, line);> >// Press -1 to exit> >if> (line ==>'-1'>)> >break>;> >// Write line in file> >fio << line << endl;> >}> >// Execute a loop until EOF (End of File)> >// point read pointer at beginning of file> >fio.seekg(0, ios::beg);> >while> (fio) {> >// Read a Line from File> >getline(fio, line);> >// Print line in Console> >cout << line << endl;> >}> >// Close the file> >fio.close();> >return> 0;> }> |
>
>
Complexité temporelle : O(n)
Espace auxiliaire : O(1)
C++
Q: write a single file handling program in c++ to reading and writing data on a file.> #include> #include> > using> namespace> std;> main()> {> >int> rno,fee;> >char> name[50];> > >cout<<>'Enter the Roll Number:'>;> >cin>>rno;> > >cout<<>'
Enter the Name:'>;> >cin>>nom;> > >cout<<>'
Enter the Fee:'>;> >cin>>frais;> > >ofstream fout(>'d:/student.doc'>);> > >fout<' '<' '/write data to the file student fout.close(); ifstream fin('d:/student.doc'); fin>>rno>>nom>>frais ; //lire les données du fichier student fin.close(); cout<' '<' '< return 0; }> |
>
>
Complexité temporelle : O(1)
Espace auxiliaire : O(1)
C++
quelle est la taille de l'écran de mon moniteur
// Q: WA C++ file handling program to read data from the file called student.doc> #include> #include> using> namespace> std;> main()> {> >int> rno,fee;> >char> name[50];> > >ifstream fin(>'d:/student.doc'>);> > >fin>>rno>>nom>>frais ;>//read data from the file student> > >fin.close();> > >cout<' '<' '< return 0; }> |
>
>
Complexité temporelle : O(1)
Espace auxiliaire : O(50)