Fichiers d'accès aléatoire en C ++

Fichiers d'accès aléatoire en C ++

L'implémentation du code d'un fichier aléatoire en C ++ n'est pas une tâche facile, en particulier sur le système d'exploitation Linux, mais cela peut être fait si vous avez des fonctions de traitement de fichiers. Cet article utilisera une structure de fichiers simple prise en charge par le langage de programmation C ++ en utilisant des codes source dans le système d'exploitation Linux.

Cette idée sera expliquée à l'aide du système d'exploitation Linux; Ainsi, vous devez faire installer et configuré Ubuntu sur votre PC. Donc, après avoir téléchargé et installé une boîte virtuelle, vous devrez le configurer. Vous devrez maintenant y ajouter le fichier Ubuntu. Vous pouvez vous rendre sur le site officiel d'Ubuntu et télécharger le fichier approprié pour votre machine et votre système d'exploitation. Il faudra plusieurs heures à installer, puis vous devez le configurer sur le système virtuel.

Nous avons utilisé Ubuntu 20.04, mais vous pouvez utiliser la version la plus récente. Vous devrez avoir un éditeur de texte et accéder à une console Linux pour terminer l'implémentation, car nous pourrons voir le résultat des codes source du terminal via la requête.

Accès au fichier aléatoire

Nous créons une application pour accéder aux informations sur les fichiers au hasard. Dans un fichier, nous accédons aux informations, et l'accès aléatoire fournit à l'utilisateur pour récupérer l'enregistrement instantanément, et cela se fait dans n'importe quel ordre. Random Access offre également une convivialité pour localiser les données immédiatement. Ce phénomène est utile dans de nombreux aspects de notre vie quotidienne. Par exemple, dans les systèmes de réservation bancaires, ce concept est utilisé pour récupérer le record en temps opportun. Le langage de programmation C ++ n'est pas impliqué dans l'imposition d'une structure à un fichier. Donc l'accès aléatoire est alors censé recommencer à zéro. De nombreuses techniques sont utilisées à cet effet, mais la plus simple consiste à utiliser l'enregistrement ayant une longueur fixe.

Dans C ++, le système de fichiers peut utiliser trois classes qui sont présentes dans le fichier d'en-tête de flux.

  • OFSTREAM: C'est une classe de flux qui nous fait écrire sur les fichiers.
  • Ifstream: Il est utilisé lorsque l'utilisateur souhaite lire les données du fichier uniquement.
  • Fléau est utilisé pour les flux d'entrée et de sortie vers et depuis le fichier.

Maintenant, nous allons à quelques exemples pour expliquer le concept d'accès aléatoire.

Exemple

Cet exemple traite de l'ouverture du fichier et de l'ajout de données. Après l'addition, les données sont affichées sous forme de sortie sur le terminal. L'ouverture du fichier dépend de deux situations. L'un est d'ouvrir le fichier déjà existant et d'écrire des données. Tandis qu'une autre condition consiste à créer un nouveau fichier pour y ajouter l'enregistrement. Tout d'abord, nous expliquerons la situation dans laquelle un fichier déjà existant est modifié en ajoutant les données. Deux bibliothèques de «iostream» et «fstream» sont utilisées.

# inclure

Dans le programme principal, nous créons des objets de «OfStream». Cet objet est utilisé pour ouvrir le fichier.

# fout.fichier ouvert.SMS")

"Déposer.SMS"Est un fichier déjà créé. Ce fichier sera ouvert. Nous avons utilisé le fichier avec les données, donc selon la situation, notre programme C ++ est conçu pour supprimer les données déjà présentes dans le fichier, puis les nouvelles données sont ajoutées avec succès. Ici, une boucle de temps est utilisée pour assurer l'ouverture du fichier. Une chose qui doit être mentionnée ici est que, comme notre fichier contient des données précédentes, il est nécessaire d'afficher le fichier avant d'écrire les nouvelles données via le terminal.

Ces 4 lignes sont déjà présentes. Mais ceux-ci seront supprimés lorsque le nouvel enregistrement sera entré. Revenons maintenant au code source.

Lorsque le fichier est exécuté, l'utilisateur est invité à saisir ses données. Lorsque les données sont entrées dans le terminal, cet enregistrement est également ajouté au fichier.

# Getline (cin, ligne);

Lorsque le programme est exécuté, l'utilisateur continuera d'ajouter les données. Pour terminer ou arrêter d'entrer dans le dossier, il faut avoir une telle condition pour arrêter la boucle. Nous utilisons donc une instance if ici. Cela vérifie si l'utilisateur entre dans la clé «Q» qui signifie arrêter, puis le système cesse d'ajouter des données plus loin.

If (line == "q")

Casser;

L'instruction «Break» est utilisée pour arrêter plus d'exécution. Comme nous l'avons décrit, les données du terminal sont ajoutées au fichier; Cela se fait par l'objet du fstream que nous avons créé.

# fout<

Après avoir écrit les données dans le fichier, nous la fermerons en utilisant le même objet. Jusqu'à présent, nous avons utilisé l'objet de «OfStream» pour écrire dans le fichier. Pour lire les données du fichier, nous devons créer un objet de «ifstream», et c'est bien.

# ifstream fin;

Après avoir créé l'objet, nous allons maintenant ouvrir le fichier en fournissant le nom du fichier.

Ailette.fichier ouvert.SMS")

Nous avons utilisé une boucle de temps pour écrire les données; De même, nous avons besoin d'une boucle de temps pour lire les données du fichier jusqu'à la fin du terminal. Cette fois, l'enregistrement est récupéré du fichier au terminal de la console. Puis fermez le fichier via l'objet.

# FIN.fermer();

Après la fermeture du fichier, accédez au terminal et utilisez le compilateur G ++ pour compiler le code.

$ g ++ -o aléatoire aléatoire.c
$./ aléatoire

Aléatoire. C est le nom du fichier où nous avons écrit le code C ++. Lorsque nous exécutons le fichier, vous pouvez voir que les nouvelles données sont tapées par l'utilisateur. Lorsque les données à saisir sont terminées, l'utilisateur doit utiliser «Q» pour quitter. Comme il est affiché dans l'image ci-dessous, appuyez sur q.

Maintenant, lorsque l'utilisateur appuie sur Q, les données seront arrêtées d'entrer dans le fichier, puis le contrôle arrive à «ifStream» pour lire les données du fichier. Maintenant, le fichier est fermé. Sur 'Q', le fichier sera ouvert pour afficher les données entrées afin que les données soient à nouveau affichées après avoir affiché le mot-clé 'Q'.

Maintenant, nous allons au gestionnaire de fichiers et voyons le fichier. Les données sont entrées et la précédente est supprimée.

D'un autre côté, si nous n'avons pas de fichier et utilisons un nom aléatoire, un nouveau fichier sera créé avec ce nom.

Par exemple, ici, le nom du fichier est utilisé.SMS'. Au lieu de «fichier.SMS'. Vous pouvez voir qu'il est automatiquement créé dans le dossier. En l'ouvrant, il affiche le même texte que vous avez entré.

Accès aléatoire du fichier via Seekg () et SeekP ()

Dans ces deux fonctions, dans Seekg, «G» représente «Get», et dans Seekp, «P» représente «mettre». Il contient deux paramètres. L'un est utilisé pour déterminer le nombre d'octets qui devraient déplacer le pointeur de fichier dans le fichier.

Conclusion

Cet article est écrit sur l'accès aléatoire du fichier en c++. Le système d'exploitation que nous avons utilisé est le système d'exploitation Linux. Tous les exemples utilisés ici sont facilement expliqués pour supprimer l'ambiguïté de l'esprit de l'utilisateur concernant l'entrée et les flux de sortie. Nous espérons que cette lutte sera utile dans les perspectives futures.