Welcome to Bukkit France

Inscrivez-vous maintenant pour profiter d'un accès total à tout le contenu offert par la meilleur communauté Bukkit française ! Une fois inscrit et connecté, vous pourrez contribuez à la communauté en postant vos propres sujets et questions ou en répondant à ceux existants. Vous pourrez aussi customiser votre profil, recevoir des points de réputations, communiquer avec les autres membres via le chat, et plus encore! 

  • Annonces

    • Pskyco

      Bukkit France passe sous Discord !   02/20/16

      Bukkit France est désormais passé sur Discord, au revoir donc notre vieux Teamspeak ! Téléchargez le client et venez nous rejoindre sur notre salon en suivant les instructions suivantes.
      M-à-j du 25/02/2017 : Désormais, seuls les comptes actifs sur le forum se verront donner l'accès au Discord, ce dernier n'est pas une plateforme d'aide de la même manière que le chat.
  • billets
    6
  • commentaires
    20
  • vues
    2309

Chapitre I : Hello World

while(true);

534 vues

Un grand classique dans les tutoriels de programmation : Le Hello World.
Il consiste simplement à afficher un message grâce à un langage de programmation, souvent en console.

 

Il y a plusieurs moyens de faire un "Hello World" en C++. En voici un moyen courant :

#include <iostream>
int main()
{
  std::cout << "Hello, world!" << std::endl;
  return 0;
}

Testez en ligne!

Décortiquons donc :

#include <iostream>

#include est ce que l'on appelle une directive de préprocesseur. C'est la première chose dont le compilateur se charge. iostream est le fichier que nous voulons inclure. Ici, iostream permet de manipuler des flux d'entrée et de sortie. Il nous fournira cout qui signifie "character out". Il nous permet de sortir du texte vers la console. Les chevrons (< >) qui délimitent iostream signifient ici que nous voulons chercher quelque chose dans une bibliothèque "globale", qui n'est donc pas locale au projet. Cela compte la bibliothèque standard du C++ (donc iostream) et éventuellement d'autres bibliothèques dépendantes du système ou installées manuellement par l'utilisateur. Nous verrons plus tard que pour importer un fichier crée manuellement pour un projet par l'utilisateur, il faut utiliser des guillemets (" ").

 
int main()

On définit ici une "fonction", main. C'est le point d'entrée de notre programme, c'est-à-dire c'est la première partie de notre code qui sera appelée (exécutée) dans notre programme. La plupart des compilateurs oblige main() a renvoyer un "int", c'est-à-dire une valeur entière (voir chapitre sur les variables), qui correspond en général à 0 si l'exécution s'est bien passée ou à autre chose si un problème est intervenu (et dans ce cas la valeur renvoyée est souvent le code d'erreur).

 
{ }

Les accolades délimitent ce qu'on appelle une "scope". Ici la scope définit ce que doit contenir la fonction. On peut les placer de manière "sauvage" à l'intérieur d'une fonction par exemple sans contexte afin de définir la portée de variables données.

 
std::cout << "Hello, world!" << std::endl;

Voyons donc. Voici notre fameux "cout". C'est le flux de sortie vers la console. Les deux chevrons pointant vers la gauche délimite les éléments à envoyer dans le flux - Pour cout on peut donner des nombres, du texte, un peu de tout... Puisque cout est un flux de sortie, on les place dans ce sens. Pour cin que l'on verra plus tard, on les place dans l'autre sens (>>). Vient maintenant notre "Hello, world!". C'est une sorte de tableau de caractères. Nous y reviendrons plus tard. endl permet de faire un saut de ligne. Cependant il va en réalité plus loin : Il attend que tout ce qu'on lui a envoyé plutôt finisse d'être "stocké" par la console. Ce n'est pas spécialement grave sauf si on affiche énormément de choses dans la console. Cela aide pour le débogage.

 
std::

En fait, std est un espace de noms utilisé par la bibliothèque standard. Un espace de noms (ou namespace en anglais) est comme son nom l'indique un espace où l'on peut placer un peu tout ce que l'on veut : Variables, classes, fonctions. Ceci de un, pour avoir plus de clarté dans le code et mieux savoir d'où vient quelque chose que l'on utilise, mais de deux, surtout pour éviter les conflits. Par exemple, si une bibliothèque fournissait une fonction void poney() et qu'une autre bibliothèque fournissait aussi void poney(), alors il y aurait conflit et le compilateur ne saurait pas laquelle utiliser. Grâce à un espace de nom, on pourrait placer void poney() de la première bibliothèque dans un espace de noms lib1 et l'autre dans un espace de noms lib2.

 

cout et endl sont stockés dans l'espace de noms std. Pour y accéder nous devons juste placer le nom de l'espace de noms puis deux fois deux points pour pouvoir accéder à eux. :: est un opérateur de résolution de scope. Du coup on a bien std::cout et std::endl.

 

Nous aurions également pu utiliser ceci : using namespace std; Il n'est pas recommandé de placer cette ligne "sauvagement" dans le fichier, hors de toute fonction, car cela casse l'intérêt d'avoir un espace de noms. Néanmoins cela aurait pu nous permettre de s'abstenir d'utiliser std:: et de rajouter cout et endl directement.

 
return 0;

Puisque notre fonction main doit renvoyer une valeur, nous le faisons ici. Comme je l'ai dit tout à l'heure, 0 signifie que le programme, en général, s'est bien exécuté.

 


Maintenant que nous avons bien décortiqué un simple hello world, nous pouvons passer au chapitre sur les variables!


6 personnes aiment ça


2 Commentaires


Très bonne initiative! Merci à toi! ;)

1 personne aime ça

Partager ce commentaire


Lien vers le commentaire
Partager sur d’autres sites

Bravo , j'attend avec impatience la suite

1 personne aime ça

Partager ce commentaire


Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant