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 fichiers C ++ comme lire et écrire, nous devons d'abord comprendre le concept d'un 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: flux d'entrée et flux de sortie. Un flux d'entrée est utilisé pour lire les données 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 pour 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, i.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 afficher la sortie sur le moniteur, respectivement. De plus, «ifstream», qui représente le «flux de fichiers d'entrée», est utilisé pour lire un flux de données à partir d'un fichier, et «OfStream», qui représente le «flux de fichiers de sortie», est utilisé pour écrire un flux de données à un fichier.

Le «iostram.Le fichier 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 discuterons des exemples suivants pour vous aider à mieux comprendre les opérations de fichiers en C ++:

  • Exemple 1: ouvrir et fermer un fichier
  • Exemple 2: Écrivez dans un fichier
  • Exemple 3: Lire à partir d'un fichier
  • Exemple 4: Lisez et écrivez dans un fichier
  • Exemple 5: Lisez et écrivez 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 de fichiers.

Pour ouvrir et fermer un fichier, nous avons besoin d'un objet d'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 pour que nous puissions accéder.

Nous avons déclaré myfile_handler comme un objet d'Ofstream à l'intérieur de la fonction principale. Nous pouvons ensuite utiliser la fonction Open () pour créer un fichier vide et la fonction close () pour fermer le fichier.

#inclure
Utilisation de Namespace Std;
int main()

OFSTREAM MYFILE_HANDLER;
// Fichier ouvert
myfile_handler.ouvrir ("File_1.SMS");
// Fichier Ferme
myfile_handler.fermer();
retour 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.Le fichier txt ”a été créé après avoir exécuté le programme. La taille du fichier est nul car nous n'avons écrit aucun contenu dans le fichier.

Exemple 2: Écrivez dans un fichier

Dans l'exemple 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 à l'aide de 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
Utilisation de Namespace Std;
int main()

OFSTREAM MYFILE_HANDLER;
// Fichier ouvert
myfile_handler.ouvrir ("File_1.SMS");
// Écrivez dans le fichier
myfile_handler << "This is a sample test File. " << endl;
myfile_handler << "This is the second line of the file. " << endl;
// Fichier Ferme
myfile_handler.fermer();
retour 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 fichier_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, je.e., le moniteur.

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

#inclure
#inclure
#inclure
Utilisation de Namespace Std;
int main()

ifstream myfile_handler;
String myline;
// Fichier ouvert en mode de lecture
myfile_handler.ouvrir ("File_1.SMS");
if (myfile_handler.est ouvert())

// continue de lire le fichier
while (getline (myfile_handler, myline))

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

// Fichier Ferme
myfile_handler.fermer();

autre

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

retour 0;

Maintenant, nous allons imprimer le contenu de File_1.txt en utilisant 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 au moniteur.

Exemple 4: Lisez et écrivez 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 au moniteur.

#inclure
#inclure
#inclure
Utilisation de Namespace Std;
int main()

fstream myfile_handler;
String myline;
// Fichier ouvert
myfile_handler.ouvrir ("File_1.txt ", ios :: in | ios :: out);
// Vérifiez si le fichier s'est ouvert
si(!myFile_Handler)

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

// Écrivez 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.Cherchez (iOS :: Beg);
// Lire le fichier
if (myfile_handler.est ouvert())

// continue de lire le fichier
while (getline (myfile_handler, myline))

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

// Fichier Ferme
myfile_handler.fermer();

autre

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

myfile_handler.fermer();
retour 0;

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

Exemple 5: Lisez et écrivez 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 des employés avec une variable publique EMP_ID. Ensuite, nous lirons le fichier binaire et imprimons la sortie au moniteur.

#inclure
#inclure
Utilisation de Namespace Std;
employé de classe

public:
int emp_id;
;
int main()

OFSTREAM BINOUTFILE_HANDLER;
ifstream bininfile_handler;
Employé EMPOBJ_W, EMPOBJ_R;
// Fichier ouvert
binoutfile_handler.ouvert ("employé.dat ", ios :: out | ios :: binaire);
// Vérifiez si le fichier s'est ouvert
si(!binoutfile_handler)

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

// Initialiser Empobj_W
empobj_w.EMP_ID = 1512;
// Écrivez dans le fichier
binoutfile_handler.write ((char *) & empoBj_w, sizeof (employé));
binoutfile_handler.fermer();
si(!binoutfile_handler.bien())

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

// Maintenant, lions l'employé.fichier DAT
bininfile_handler.ouvert ("employé.dat ", ios :: in | ios :: binary);
// Vérifiez si le fichier s'est ouvert
si(!bininfile_handler)

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

// Lire le contenu du fichier binaire
bininfile_handler.lire ((char *) & empoBj_r, sizeof (employé));
bininfile_handler.fermer();
si(!bininfile_handler.bien())

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

// Imprime la sortie d'Empobj_r
couter << "Details of the Employee : " << endl;
couter << "Employee ID : " << empObj_R.emp_id << endl;
retour 0;

Conclusion

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