Premier programme Hello World

Décembre 2016

Bibliothèque standard

La qualité d'un langage de programmation repose en grande partie sur l'ensemble des bibliothèques de support qui l'accompagnent. Pour simplifier, vous n'avez pas besoin de réinventer la roue. Les fonctions classiques d'écriture sur l'écran, de manipulation de texte, de lecture existent déjà dans ces bibliothèques. Des quantités d'outils et d'objets ont été développées en C++ et regroupés dans ces dernières. Pour les utiliser dans vos programmes, il suffit d'inclure au début de votre fichier source les bibliothèques appropriées.
Dans ce chapitre, nous allons étudier les fonctions clés de la bibliothèque standard du C++ et la bibliothèque string, qui fournit toutes les fonctions de manipulation des chaînes. Les exemples sont uniquement basés sur l'implémentation standard du langage, ils sont donc portables sur toute plate-forme. La plupart des environnements de développement comme Borland ou Visual C++ fournissent aussi leurs propres bibliothèques de base. Consultez la documentation de ces produits pour connaître l'étendue de la portabilité du code obtenu, cela pourrait vous éviter quelques surprises.

Premier programme Hello World!

Maintenant que vous avez ingurgité les principes de base, voyons enfin le premier programme. Tous les ouvrages de programmation commencent par le fameux programme Hello World!, alors nous n'allons pas vous décevoir. Comme pour tout programme C, il faut savoir qu'un programme C++ est séquentiel, c'est-à-dire qu'il suit l'ordre des lignes de code.

Code 2.1 : premier programme : "premier programme"

#include<iostream>     // ajout de la bibliothèque iostream     

int main()
{
std::cout<<"Hello Worldn";

/* std::cout signifie que nous utilisons le flux de sortie standard. Comme en C, un commentaire de ce type peut occuper plusieurs lignes */

}


Nous ne détaillons pas #include qui a la même signification qu'en C. Cette ligne revient à copier en début de programme l'ensemble des déclarations de fonctions disponibles dans la bibliothèque iostream : "iostream (bibliothèque)" et "bibliothèque standard:iostream", c'est-à-dire l'ensemble des fonctions d'entrées/sorties de flux standard. Nous détaillerons les flux un peu plus loin dans ce chapitre. C'est grâce à cette instruction que l'expression std::cout<<"Hello Worldn"; a un sens.

À savoir

Les fonctions de la bibliothèque standard : "bibliothèque standard:inclusion des fichiers en-tête", "bibliothèque standard", "fichier en-tête:inclusion des fichiers:standard" sont disponibles dans un ensemble d'en-têtes standard qu'il ne faut pas suffixer. Ils n'ont pas d'extension, afin qu'on ne les confonde pas avec les fichiers d'en-tête standard du langage C. Par exemple, sous Ms Visual Studio 8, le fichier stocké sur disque est bien iostream. De même avec mingw.
À chaque en-tête de bibliothèque C <Entete.h> correspond un en-tête C++ <cEntete>.

Tout programme C++ doit contenir une fonction main(). C'est la fonction principale et la première que le programme va exécuter. L'indicateur int qui la précède indique que le programme renverra une valeur entière au système. Si la fonction ne doit pas renvoyer de valeur (void remplace alors int), le système reçoit une valeur nulle en cas d'exécution réussie et une valeur non nulle en cas d'échec. Une fonction qui affiche un message, par exemple, ne transmet pas de valeur en retour au programme. main(), comme toutes les fonctions, est suivie de parenthèses qui permettent d'inclure éventuellement des paramètres.
Les accolades indiquent un bloc. Ce bloc contient toutes les instructions que le programme main va exécuter, en l'occurrence, l'affichage de Hello World!.

L'opérateur de transmission <<écrit son deuxième argument dans le premier. Dans notre exemple, nous écrivons la chaîne littérale "Hello World!" dans le flux de sortie standard : "flux:sortie standard cout", "sortie standard cout", "cout (flux de sortie standard)" std::cout, c'est-à-dire sur l'écran.

À savoir

Nous appelons chaîne littérale : "chaîne:littérale, codes de mise en forme" toute suite de caractères placée entre guillemets doubles. La séquence peut contenir du texte mais aussi des caractères ayant une signification particulière. Ces caractères sont toujours précédés d'un . Dans notre exemple, n représente un retour à la ligne. Le tableau 2.1 présente les autres caractères de contrôle.

Tableau 2.1 : codes de mise en forme :
CodeDescription
nRetour à la ligne
rRetour chariot
tTabulation horizontale
vTabulation verticale
fAjout d'une page blanche
bRetour arrière
aSignal sonore
onnValeur octale égale à nn (base 8)
xnnnValeur hexadécimale égale à nnn (base 16)
" Guillemet double
' Guillemet simple
0Caractère nul
? Point d'interrogation
Barre oblique inverse


Ne surtout pas oublier le point-virgule à la fin de chaque instruction !
Enfin, pour plus de lisibilité, n'hésitez pas à documenter vos programmes. Ce qui vous paraît clair aujourd'hui sera peut-être plus difficile à comprendre lorsque vous reprendrez le programme après quelques semaines ou quelques mois. Le commentaire de la première ligne est spécifique au C++, il commence par // et se termine à la fin de la ligne. Vous pouvez aussi utiliser les commentaires du C (/*...*/). Un programme est bien documenté quand vous pouvez comprendre son fonctionnement uniquement en lisant les commentaires inclus.

Dans l'espace de noms std, je demande...

Si vous demandez la mère sans autre précision à votre partenaire au jeu des 7 familles, il ne comprendra pas quelle carte vous réclamez. C'est pourquoi vous énoncez toujours : « Dans la famille Tartempion, je demande la mère. » Il n'y a plus d'ambiguïté, cette phrase désigne bien une seule carte du jeu. Les espaces de noms sont l'équivalent en programmation des familles. L'espace de noms std est celui dans lequel la bibliothèque standard C++ est définie.
Reprenons notre premier exemple de programme. Pour pouvoir utiliser une fonction de la bibliothèque standard, vous devez inclure au début du programme l'en-tête standard approprié. Dans cet exemple, il s'agit de <iostream>. Les fonctions standard sont alors disponibles et, pour les utiliser, il suffit de les faire précéder de std::. Si vous n'avez pas envie de saisir ce préfixe chaque fois que vous appelez une fonction standard, vous pouvez coder :

#include<iostream>     
using namespace std; //std = espace de noms par défaut

int main()
{
cout<<"Hello Worldn"; //cout est en fait std::cout
}


Le texte original de cette fiche pratique est extrait de
«Tout sur le C++» (Christine EBERHARDT, Collection
CommentCaMarche.net, Dunod, 2009)

A voir également :

Ce document intitulé «  Premier programme Hello World  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.