Extraction avec des opérateurs en C ++

Lorsque vous lisez un fichier, vous pouvez utiliser la extraction opérateur, >>. Cet opérateur est très facile à utiliser, à condition que vous reconnaissez que la phrase, “ Regarde maman, pas de mises en garde ”!; n'a tout simplement pas applicable à l'opérateur d'extraction.

Supposons que vous avez un fichier appelé Numbers.txt avec le texte suivant sur une seule ligne:

100 50 30 25

Vous pouvez facilement lire dans ces chiffres avec le code suivant. Tout d'abord, assurez-vous que vous ajoutez #comprendre (mais pasfstream.h, que vous allez ramasser un vieux, démodé, fichier dégueu) ainsi que #comprendre . Et vous avez probablement besoin de la ligne using namespace STD si vous utilisez un nouveau compilateur et la bibliothèque.

Il est important de définir des variables pour contenir les données que vous souhaitez lire. Ces variables (trouvés dans le FileRead01 par exemple) fonctionne très bien:

chaîne poids-string hauteur chaîne largeur cordes depth-

Les variables définissent les statistiques pour un certain type de widget que vous voulez construire. Après vous avez les variables en jeu, ce code va faire le travail:




ifstream MyFile ("Numbers.txt") - MyFile >> poids MyFile >> hauteur MyFile >> largeur MyFile >> depth-

Dans le code précédent, le fichier d'entrée, Numbers.txt, avaient ses nombres séparés par des espaces. Vous pouvez également les séparer par des caractères de nouvelle ligne, comme ceci:

100503025

L'application ne se soucie pas. Il cherche espace blanc, qui est un nombre quelconque de espaces, onglets, et retours à la ligne. Vous pouvez formater les données de sorte qu'il ressemble à l'exemple ci-dessous, et l'application aurez toujours les lire correctement.

100503025

Lorsque vous faites affaire avec l'objet de l'entrée standard, cin, les mêmes règles sur l'espace blanc appliquent: Si vous lisez dans quatre numéros, comme dans l'exemple suivant, le cin objet, comme le ifstream objet, va séparer les chiffres fondés sur l'espace blanc.

cin >> poids-cin >> hauteur cin >> largeur cin >> depth-

Si l'utilisateur accidentellement insère un espace, l'ordinateur va appliquer les valeurs séparées en deux endroits - les deux de manière incorrecte. Faites attention!

Lorsque vous lisez les informations d'un fichier, assurez-vous que vous avez clairement défini l'ordre de l'information. En d'autres termes, assurez-vous que vous avez convenu d'un protocole pour l'information. Sinon, vous aurez probablement se retrouver avec des erreurs et des erreurs, et vos collègues voudrez blâmer quelqu'un. Voilà la façon dont les gens informatiques sont, après tout.

Bien sûr, vous aurez envie de vérifier que l'application fonctionne réellement. L'ajout de ce Code fera l'affaire:

cout lt; lt; "Poids =" lt; lt; poids lt; lt; " r n" -cout lt; lt; "Height =" lt; lt; hauteur lt; lt; " r n" -cout lt; lt; "Width =" lt; lt; largeur lt; lt; " r n" -cout lt; lt; "Profondeur =" lt; lt; depth-

Lorsque vous exécutez l'application, vous voyez le résultat de la lecture du fichier. Voici ce que vous devriez voir:

Poids = 100Height 50Width = = = 25 30Depth

» » » » Extraction avec des opérateurs en C ++