Entrée/Sortie de base C++ :Cout, Cin, Cerr Exemple
Que sont les flux en C++ ?
C++ fournit aux utilisateurs un certain nombre de bibliothèques qu'ils peuvent utiliser pour effectuer des tâches d'entrée/sortie. Ces tâches sont effectuées sous la forme de séquences d'octets, communément appelées flux.
Les flux sont divisés en deux :
Types de flux
- Flux d'entrée : Il s'agit d'un type de flux dans lequel les octets circulent d'un périphérique tel qu'un clavier vers la mémoire principale.
- Flux de sortie : Il s'agit d'un type de flux où les octets circulent dans le sens opposé, c'est-à-dire de la mémoire principale puis vers l'appareil tel que l'écran d'affichage.
Dans ce didacticiel C++, vous apprendrez :
- Que sont les flux en C++ ?
- Comment fonctionnent les flux ?
- Tableau des fonctions
- Fichiers d'en-tête C++ pour l'entrée/la sortie
- std::cout
- std::cin
- std::cerr
- std ::clog
- Gestion des erreurs avec les flux d'E/S :
Comment fonctionnent les flux ?
Les flux C++ fonctionnent comme suit :
- Tout d'abord, un flux est initialisé avec le bon type.
- Ensuite, vous devez indiquer où les E/S se produiront à l'aide de pointeurs get/put.
- Après avoir atteint le bon emplacement dans un flux, vous pouvez effectuer des tâches d'entrée et de sortie à l'aide des opérateurs>> et <<, respectivement.
Tableau des fonctions
Voici les fonctions fournies dans le fichier d'en-tête stream.h :
Fichiers d'en-tête C++ pour l'entrée/la sortie
C++ fournit trois bibliothèques fournies avec des fonctions permettant d'effectuer des tâches d'entrée/sortie de base. Ils incluent :
- Iostream : C'est un acronyme pour flux d'entrée/sortie standard. Ce fichier d'en-tête contient des définitions d'objets tels que cin/cout/cerr.
- Iomanip : C'est un acronyme pour les manipulateurs d'entrée/sortie. La bibliothèque est livrée avec des fonctions qui peuvent être utilisées pour la manipulation de flux. Il contient des définitions d'objets tels que setw, setprecision et autres.
- Fstream : Il s'agit d'un fichier d'en-tête pour décrire le flux du fichier. Il gère les données lues à partir du fichier en entrée ou écrites dans un fichier, la sortie.
Les mots clés cin et cout sont très populaires en C++. Ils sont utilisés pour prendre les entrées et imprimer les sorties, respectivement. Pour les utiliser, vous devez inclure le fichier d'en-tête iostream dans votre programme. La raison en est qu'ils sont définis dans ce fichier d'en-tête. Si vous n'incluez pas le fichier d'en-tête iostream, une erreur sera générée. Cela résulte d'un échec du compilateur C++ à comprendre la signification des mots-clés.
Les principaux objets définis dans le fichier d'en-tête iostream sont cin, cout, cerr et clog. Discutons-en.
std::cout
L'objet cout est une instance de la classe iostream. Il est utilisé pour produire une sortie sur un périphérique de sortie standard, qui est normalement l'écran. Il est utilisé avec l'opérateur d'insertion de flux (<<).
Exemple :
#include <iostream> using namespace std; int main() { char welcome[] = "Welcome to Guru99"; cout << welcome << endl; return 0; }
Sortie :
Voici une capture d'écran du code :
Explication du code :
- Incluez le fichier d'en-tête iostream dans lequel l'objet cout est défini.
- Incluez l'espace de noms std afin que nous n'ayons pas à l'appeler lors de l'utilisation de ses classes.
- Appelez la fonction main(). Le code du programme doit être ajouté dans son corps. L'accolade ouvrante { marque le début de son corps.
- Créez une variable de caractère nommée welcome pour contenir la chaîne Welcome to Guru99.
- Affiche la valeur de la chaîne welcome sur la console. Le endl est un mot-clé C++ signifiant ligne de fin. Il déplace le curseur pour commencer l'impression du texte sur la ligne suivante.
- Le programme doit renvoyer une valeur en cas d'exécution réussie.
- Fin du corps de la fonction main().
std::cin
L'objet cin est une instance de la classe istream. Il lit les entrées du périphérique d'entrée, le clavier. Il est normalement utilisé avec l'opérateur d'extraction (>>). L'objet d'extraction est responsable de l'extraction des données saisies au clavier à partir de l'objet cin.
Exemple :
L'exemple suivant montre comment utiliser le mot-clé cin en C++ :
#include <iostream> using namespace std; int main() { int number; cout << "Enter a number:"; cin >> number; cout << "\nYou entered: " << number; return 0; }
Sortie :
Voici une capture d'écran du code :
Explication du code :
- Inclure le fichier d'en-tête iostream dans notre programme. L'objet cin est défini dans ce fichier d'en-tête.
- Incluez l'espace de noms std pour utiliser ses classes. Vous n'aurez pas à appeler std lors de l'utilisation de ses classes.
- Appelez la fonction main(). Le code du programme doit être ajouté dans son corps.
- Le début du corps du programme.
- Déclarez une variable entière nommée nombre.
- Imprimer un message à l'écran invitant l'utilisateur à saisir un numéro.
- Lire la valeur saisie par l'utilisateur sur la console à partir du clavier.
- Imprimez la valeur lue ci-dessus sur la console à côté d'un autre texte.
- Le programme doit renvoyer une valeur s'il s'exécute avec succès.
- Fin du corps de la fonction principale.
std::cerr
L'objet cerr forme le flux d'erreurs standard pour générer des erreurs en C++. Cerr est une instance de la classe ostream. L'objet cerr n'est pas tamponné. Cela signifie qu'il est utilisé lorsqu'un message d'erreur doit être affiché immédiatement.
Comme il n'est pas tamponné, il ne stocke pas de message d'erreur pour un affichage ultérieur. Il est utilisé avec l'opérateur d'insertion de flux (<<).
Exemple :
#include <iostream> using namespace std; int main() { cerr << "An Error occurred!"; return 0; }
Sortie :
Voici une capture d'écran du code :
Explication du code :
- Inclure le fichier d'en-tête iostream où l'objet cerr a été défini.
- Incluez l'espace de noms std afin que nous n'ayons pas à l'appeler lors de l'utilisation de ses classes.
- Appelez la fonction main(). La logique du programme doit être ajoutée dans son corps. L'accolade ouvrante marque le début du corps de la fonction.
- Utilisez l'objet cerr pour imprimer une erreur sur la console.
- Le programme doit renvoyer une valeur en cas d'exécution réussie.
- Fin du corps de la fonction principale.
std ::clog
L'objet clog est une instance de la classe ostream. Il est utilisé pour afficher les erreurs sur l'affichage standard, le moniteur. Il est similaire à l'objet cerr, mais il est tamponné. Puisqu'il est mis en mémoire tampon, il stocke le message d'erreur dans la mémoire tampon jusqu'à ce que la mémoire tampon soit remplie/vidée. Il est utilisé avec l'opérateur d'insertion de flux (<<).
Exemple :
#include <iostream> using namespace std; int main() { clog << "An Error occurred!"; return 0; }
Sortie :
Voici une capture d'écran du code :
Explication du code :
- Y compris le fichier d'en-tête iostream dans lequel l'objet clog est défini.
- Inclure l'espace de noms std afin que nous puissions utiliser ses classes sans l'appeler.
- Appeler la fonction main(). La logique du programme doit être ajoutée dans son corps. Le { marque le début du corps de la fonction.
- Utilisez l'objet clog pour imprimer une erreur sur la sortie standard, le moniteur.
- Le programme doit renvoyer une valeur en cas de réussite.
- La fin du corps de la fonction main().
Gestion des erreurs avec les flux d'E/S :
Pour vérifier si un flux est valide ou non, vous pouvez l'utiliser comme booléen.
Voici un exemple :
ifstream file( "myfile.txt" ); if ( ! file ) { cout << "File NOT opened!" << endl; }
Pour obtenir plus de détails sur l'état du flux, vous pouvez utiliser ces fonctions :
- good()- renverra true si tout va bien.
- bad()- renverra true si une erreur fatale se produit.
- fail() - renverra true après une opération de flux infructueuse.
- eof()- renverra vrai s'il atteint la fin d'un fichier.
Pour savoir si une opération de lecture/écriture particulière a échoué, testez le résultat de la lecture.
Par exemple, pour vérifier si l'utilisateur a saisi un entier valide, procédez comme suit :
int p; if ( cin >> p ) { cout << "Enter valid number" << endl; }
Résumé
- Les tâches d'entrée et de sortie en C++ sont effectuées via une séquence d'octets. Les octets sont appelés flux.
- Dans un flux d'entrée, les octets circulent du périphérique d'entrée comme un clavier vers la mémoire principale.
- Dans un flux de sortie, les octets de la mémoire principale puis vers un périphérique de sortie comme un moniteur.
- L'objet cin est une instance de la classe istream. Il lit les entrées d'un périphérique d'entrée comme le clavier.
- L'objet cout est une instance de la classe ostream. Il produit une sortie sur des périphériques de sortie comme le moniteur.
- L'objet cerr est une instance de la classe ostream. Il affiche les objets d'erreur sur le moniteur.
- L'objet clog est une instance de la classe ostream. Il affiche des messages d'erreur sur les périphériques de sortie.
- L'objet clog met en mémoire tampon les messages d'erreur, contrairement à l'objet cerr.
Langue C