C++ Entrées/Sorties de base
La bibliothèque standard C++ fournit un ensemble riche de capacités d'entrée/sortie, que nous présenterons dans les chapitres suivants. Ce chapitre abordera les opérations d'E/S les plus élémentaires et les plus courantes de la programmation C++.
Les E/S C++ se produisent dans des flux, qui sont des séquences d'octets. Si le flux d'octets circule d'un dispositif (tel qu'un clavier, un lecteur de disque, une connexion réseau, etc.) vers la mémoire, on parle d'opérations d'entrée. Si le flux d'octets circule de la mémoire vers un dispositif (tel qu'un écran d'affichage, une imprimante, un lecteur de disque, une connexion réseau, etc.), on parle d'Opérations de sortie。
Fichier d'en-tête de la bibliothèque d'E/S
Les fichiers d'en-tête suivants sont importants en programmation C++.
| Fichier d'en-tête | Fonctions et descriptions |
|---|---|
| <iostream> | Ce fichier définitcin、cout、cerretclogcomme objets, correspondant respectivement au flux d'entrée standard, au flux de sortie standard, au flux d'erreur standard non tamponné et au flux d'erreur standard tamponné. |
| <iomanip> | Ce fichier utilise ce que l'on appelle des manipulateurs de flux paramétrés (tels quesetwetsetprecision) pour déclarer des services utiles à l'exécution d'E/S standardisées. |
| <fstream> | Ce fichier déclare des services pour le traitement de fichiers contrôlé par l'utilisateur. Nous discuterons de ses détails dans le chapitre sur les fichiers et les flux. |
Flux de sortie standard (cout)
Objets prédéfiniscoutOuiiostreamUne instance de la classe. L'objet cout est « connecté » au périphérique de sortie standard, généralement un écran d'affichage.coutest utilisé en conjonction avec l'opérateur d'insertion de flux <<, comme indiqué ci-dessous :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Value of str is : Hello C++
Le compilateur C++ sélectionne l'opérateur d'insertion de flux approprié en fonction du type de données de la variable à sortir pour afficher la valeur. L'opérateur << est surchargé pour sortir des éléments de données de types intégrés (entier, virgule flottante, double, chaîne et pointeur).
L'opérateur d'insertion de flux << peut être utilisé plusieurs fois dans une même instruction, comme le montre l'exemple ci-dessus,endlUtilisé pour ajouter un saut de ligne à la fin d'une ligne.
Flux d'entrée standard (cin)
Objets prédéfiniscinOuiiostreamUne instance de la classe. L'objet cin est attaché au périphérique d'entrée standard, généralement un clavier.cinest utilisé conjointement avec l'opérateur d'extraction de flux >>, comme indiqué ci-dessous :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il invite l'utilisateur à saisir un nom. Lorsque l'utilisateur saisit une valeur et appuie sur Entrée, les résultats suivants s'affichent :
请输入您的名称: cplusplus 您的名称是: cplusplus
Le compilateur C++ sélectionne l'opérateur d'extraction de flux approprié en fonction du type de données de la valeur à saisir, extrait la valeur et la stocke dans la variable donnée.
L'opérateur d'extraction de flux >> peut être utilisé plusieurs fois dans une même instruction. Si plusieurs éléments de données doivent être saisis, l'instruction suivante peut être utilisée :
cin >> name >> age;
Ceci est équivalent aux deux instructions suivantes :
cin >> name; cin >> age;
Flux d'erreur standard (cerr)
Objets prédéfiniscerrOuiiostreamUne instance de la classe. L'objet cerr est attaché au périphérique de sortie standard, généralement aussi un écran d'affichage, maiscerrL'objet n'est pas tamponné, et chaque insertion de flux dans cerr est affichée immédiatement.
cerrest également utilisé conjointement avec l'opérateur d'insertion de flux <<, comme indiqué ci-dessous :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Error message : Unable to read....
Flux de journalisation standard (clog)
Objets prédéfinisclogOuiiostreamUne instance de la classe. L'objet clog est attaché au périphérique de sortie standard, généralement aussi un écran d'affichage, maisclogL'objet est mis en mémoire tampon. Cela signifie que chaque insertion de flux dans clog est d'abord stockée dans la mémoire tampon et ne sera pas émise tant que la mémoire tampon n'est pas remplie ou vidée.
clogest également utilisé conjointement avec l'opérateur d'insertion de flux <<, comme indiqué ci-dessous :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Error message : Unable to read....
À travers ces petits exemples, nous ne pouvons pas distinguer les différences entre cout, cerr et clog, mais lors de l'écriture et de l'exécution de grands programmes, les différences entre eux deviennent très évidentes. Par conséquent, une bonne pratique de programmation nous indique d'utiliser le flux cerr pour afficher les messages d'erreur, et d'émettre les autres messages de journal à l'aide du flux clog.
autres extensions