C++ Basic Input/Output

Bonjour à tous, futurs programmeurs C++ ! Aujourd'hui, nous allons plonger dans le monde passionnant de l'entrée et de la sortie en C++. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code avant – nous commencerons depuis le début et nous nous dirigerons vers le haut. À la fin de ce tutoriel, vous serez étonné de ce que vous pouvez faire avec seulement quelques lignes de code C++ !

C++ Basic Input/Output

Fichiers d'en-tête de bibliothèque I/O

Avant de pouvoir commencer à imprimer des messages à l'écran ou à lire des entrées de l'utilisateur, nous devons inclure les fichiers d'en-tête nécessaires. En C++, les opérations d'entrée et de sortie sont gérées par la bibliothèque iostream.

Commençons par un exemple simple :

#include <iostream>

int main() {
// Votre code ira ici
return 0;
}

Ceci est la structure de base d'un programme C++. La ligne #include <iostream> indique au compilateur d'inclure la bibliothèque iostream, ce qui nous donne accès à la fonctionnalité d'entrée et de sortie.

Le Flux de Sortie Standard (cout)

Maintenant, apprenons comment afficher du texte à l'écran. En C++, nous utilisons cout (prononcé "see-out") pour envoyer la sortie à la console.

#include <iostream>
using namespace std;

int main() {
cout << "Bonjour, Monde !";
return 0;
}

Lorsque vous exécutez ce programme, il affichera "Bonjour, Monde !" à l'écran. Analysons cela :

  • cout est l'objet de flux de sortie standard.
  • L'opérateur << est utilisé pour envoyer des données à cout.
  • Le texte entre guillemets est appelé une chaîne littérale.

Vous pouvez également utiliser cout pour imprimer plusieurs éléments :

cout << "Mon nom est " << "Alice" << " et j'ai " << 25 << " ans.";

Cela affichera : "Mon nom est Alice et j'ai 25 ans."

Ajouter une Nouvelle Ligne

Pour passer à une nouvelle ligne après la sortie, vous pouvez utiliser le manipulateur endl ou le caractère \n :

cout << "Première ligne" << endl;
cout << "Deuxième ligne\n";
cout << "Troisième ligne" << '\n';

Le Flux d'Entrée Standard (cin)

Maintenant que nous pouvons sortir du texte, apprenons comment obtenir des entrées de l'utilisateur. Nous utilisons cin (prononcé "see-in") à cette fin.

#include <iostream>
using namespace std;

int main() {
int age;
cout << "Quel âge avez-vous ? ";
cin >> age;
cout << "Vous avez " << age << " ans !" << endl;
return 0;
}

Dans cet exemple :

  • Nous déclarons une variable entière age pour stocker l'entrée de l'utilisateur.
  • Nous utilisons cout pour demander à l'utilisateur son âge.
  • cin >> age lit un entier de l'utilisateur et le stocke dans la variable age.
  • Enfin, nous utilisons cout pour afficher le résultat.

Vous pouvez également lire plusieurs entrées :

string name;
int age;
cout << "Entrez votre nom et votre âge : ";
cin >> name >> age;
cout << "Bonjour, " << name << " ! Vous avez " << age << " ans." << endl;

Le Flux d'Erreur Standard (cerr)

Bien que cout soit génial pour la sortie normale, parfois nous devons afficher des messages d'erreur. C'est là que cerr entre en jeu. Il est similaire à cout, mais il est spécifiquement destiné aux messages d'erreur.

#include <iostream>
using namespace std;

int main() {
int denominateur = 0;
if (denominateur == 0) {
cerr << "Erreur : Impossible de diviser par zéro !" << endl;
}
return 0;
}

Utiliser cerr aide à distinguer entre la sortie normale et les messages d'erreur, ce qui peut être crucial lors du débogage de vos programmes.

Le Flux de Journalisation Standard (clog)

Enfin, nous avons clog, qui est utilisé pour les messages de journalisation. Il est similaire à cerr, mais il pourrait être bufféré, ce qui signifie que la sortie pourrait ne pas apparaître immédiatement.

#include <iostream>
using namespace std;

int main() {
clog << "Ceci est un message de journal." << endl;
return 0;
}

Dans la pratique, clog n'est pas utilisé aussi fréquemment que cout et cerr, mais il est bon de savoir qu'il existe.

Formatting Output

Maintenant que nous avons couvert les bases, examinons quelques méthodes pour formater notre sortie pour qu'elle soit plus jolie.

Définir la Largeur du Champ

Vous pouvez utiliser le manipulateur setw pour définir la largeur d'un champ :

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
cout << setw(10) << "Nom" << setw(5) << "Âge" << endl;
cout << setw(10) << "Alice" << setw(5) << 25 << endl;
cout << setw(10) << "Bob" << setw(5) << 30 << endl;
return 0;
}

Cela produira une sortie bien alignée :

Nom  Âge
Alice   25
Bob   30

Précision pour les Nombres Flottants

Pour les nombres flottants, vous pouvez contrôler la précision à l'aide de setprecision :

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
double pi = 3.14159265359;
cout << "Pi par défaut : " << pi << endl;
cout << "Pi à 4 décimales : " << fixed << setprecision(4) << pi << endl;
return 0;
}

Sortie :

Pi par défaut : 3.14159
Pi à 4 décimales : 3.1416

Résumé des Objets et Manipulateurs de Flux I/O

Voici un tableau pratique résumant les objets et manipulateurs de flux I/O que nous avons appris :

Object/Manipulator Description Exemple
cout Flux de sortie standard cout << "Bonjour";
cin Flux d'entrée standard cin >> variable;
cerr Flux d'erreur standard cerr << "Erreur !";
clog Flux de journalisation standard clog << "Message de journal";
endl Fin de ligne cout << "Bonjour" << endl;
setw Définir la largeur du champ cout << setw(10) << "Nom";
setprecision Définir la précision des nombres flottants cout << setprecision(2) << 3.14159;

Et voilà ! Vous avez juste appris les bases de l'entrée et de la sortie en C++. N'oubliez pas, la pratique fait le maître, donc n'hésitez pas à expérimenter avec ces concepts. Essayez de les combiner de différentes manières, et bientôt vous écrirez des programmes complexes avec facilité.

Bon codage, et que vos sorties soient toujours comme prévu et vos entrées toujours valides !

Credits: Image by storyset