Comment flux E / S fonctionne en C ++

Beaucoup de commencer les programmes C ++ lues à partir du cin objet d'entrée et sortie à travers le cout objet de sortie. Peut-être vous ne l'avez pas vraiment pensé beaucoup, mais cette technique d'entrée / sortie est un sous-ensemble de ce qui est connu sous le nom flux E / S.

Volet I / O est un trop grand sujet pour être complètement recouverte dans un certain nombre d'articles simples - des livres entiers sont consacrés à ce seul sujet. Heureusement, il n'y a pas grand-chose que vous devez savoir sur les flux I / O pour écrire la grande majorité des programmes.




Volet I / O est basé sur les versions surchargées de operator >> () et operatorlt; lt; (). La déclaration de ces opérateurs surchargés se trouve dans le fichier iostream. Le code de ces fonctions est inclus dans la bibliothèque standard, que votre C ++ liens du programme avec.

Le code suivant montre quelques-uns des prototypes apparaissant dans iostream:

// pour l'entrée, nous avons: istream operator >> (istream Source, char * pDEST) -istream operator >> (istream la source, la chaîne sDest) -istream operator >> (istream la source, intdest) -istream operator >> (istream la source, double dest) - // ... et ainsi de suite ... // pour la sortie, nous avons: ostream operatorlt; lt; (ostream dest, char * Psource) -ostream operatorlt; lt; (ostream dest, chaîne sDest) -ostream operatorlt; lt; (ostream dest, source d'int) -ostream operatorlt; lt; (ostream dest, double source) - // ... et donc il va ...

Lorsque surchargé pour effectuer des E / S, operator >> () est appelé le extracteur et operatorlt; lt; () est appelé le insertion. La classe istream est la classe de base pour l'entrée à partir d'un fichier ou d'un dispositif tel que le clavier. C ++ ouvre le istream objet cin lorsque le programme démarre. De même, ostream est la base pour la sortie.

Les prototypes sont ci-dessus pour inséreuses et extracteurs pour pointeurs sur null chaînes de caractères terminées (comme “ Mon nom ”), pour chaîne objets, pour ints, et pour double.


» » » » Comment flux E / S fonctionne en C ++