Écrire un message à l'écran

 Écrire un message à l'écran

A partir de maintenant, on va modifier nous-mêmes le code de ce programme minimal.

Votre mission, si vous l'acceptez : afficher le message "Bonjour" à l'écran.


Comme tout à l'heure, une console doit s'ouvrir. Le message "Bonjour" doit s'afficher dans la console.


Comment fait-on pour choisir le texte qui s'affiche à l'écran ?


Ce sera en fait assez simple. Si vous partez du code qui a été donné plus haut, il vous suffit simplement de remplacer "Hello world!" par "Bonjour" dans la ligne qui fait appel à printf.


Comme je vous le disais plus tôt, printf est une instruction. Elle commande à l'ordinateur : "Affiche-moi ce message à l'écran".

Il faut savoir que printf est en fait une fonction qui a déjà été écrite par d'autres programmeurs avant vous.


Cette fonction, où se trouve-t-elle ? Moi je ne vois que la fonction main !


Vous vous souvenez de ces 2 lignes ?



Je vous avais dit qu'elles permettaient d'ajouter des bibliothèques dans votre programme.

Les bibliothèques sont en fait des fichiers avec des tonnes de fonctions toutes prêtes à l'intérieur. Ces fichiers-là (stdio.h et stdlib.h) contiennent la plupart des fonctions de base dont on a besoin dans un programme. stdio.h en particulier contient des fonctions permettant d'afficher des choses à l'écran (comme printf) mais aussi de demander à l'utilisateur de taper quelque chose (ce sont des fonctions que l'on verra plus tard).



Dis Bonjour au Monsieur

Dans notre fonction main, on fait donc appel à la fonction printf. C'est une fonction qui en appelle une autre (ici, main appelle printf). Vous allez voir que c'est tout le temps comme ça que ça se passe en langage C : une fonction contient des instructions qui appellent d'autres fonctions, et ainsi de suite.


Donc, pour faire appel à une fonction, c'est simple : il suffit d'écrire son nom, suivi de 2 parenthèses, puis un point-virgule.



C'est bien, mais ce n'est pas suffisant. Il faut indiquer quoi écrire à l'écran. Pour faire ça, il faut donner à la fonction printf le texte à afficher. Pour ce faire, ouvrez des guillemets à l'intérieur des parenthèses et tapez le texte à afficher entre ces guillemets, comme cela avait déjà été fait sur le code minimal.


Dans notre cas, on va donc taper très exactement :


printf("Bonjour");


J'espère que vous n'avez pas oublié le point-virgule à la fin, je vous rappelle que c'est très important ! Cela permet d'indiquer que l'instruction s'arrête là.


Voici le code source que vous devriez avoir sous les yeux :






On a donc 2 instructions qui commandent dans l'ordre à l'ordinateur :


1.    Affiche "Bonjour" à l'écran.

2.    La fonction main est terminée, renvoie 0. Le programme s'arrête alors.



Voici ce que donne ce programme à l'écran :


Un programme poli qui dit Bonjour



Comme vous pouvez le voir, la ligne du "Bonjour" est un peu collée avec le reste du texte, contrairement à tout à l'heure.

Une des solutions pour rendre notre programme plus présentable serait de faire un retour à la ligne après "Bonjour" (comme si on appuyait sur la touche "Entrée" quoi )


Mais bien sûr, ce serait trop simple de taper "Entrée" dans notre code source pour qu'une entrée soit effectuée à l'écran ! Il va falloir utiliser ce qu'on appelle des caractères spéciaux...


Les caractères spéciaux

Les caractères spéciaux sont des lettres spéciales qui permettent d'indiquer qu'on veut aller à la ligne, faire une tabulation etc...

Les caractères spéciaux sont faciles à reconnaître : c'est un ensemble de 2 caractères. Le premier d'entre eux est toujours un anti-slash ( \ ), et le second un nombre ou une lettre. Voici 2 caractères spéciaux courants que vous aurez probablement besoin d'utiliser, ainsi que leur signification :


   \n : retour à la ligne (= "Entrée")

   \t : tabulation



Dans notre cas, pour faire une entrée, il suffit de taper \n pour créer un retour à la ligne.

Si je veux donc faire un retour à la ligne juste après le mot Bonjour, je devrai taper :


printf("Bonjour\n");


Votre ordinateur comprend qu'il doit afficher "Bonjour" suivi d'un retour à la ligne.



Le programme Bonjour avec un saut de ligne


C'est un peu mieux déjà non ?


Vous pouvez écrire à la suite du \n sans aucun problème. Tout ce que vous écrirez à la suite du \n sera placé sur la deuxième ligne. Vous pourriez donc vous entraîner à écrire :

printf("Bonjour\nAu Revoir\n");

Cela affichera "Bonjour" sur la première ligne et "Au revoir" sur la ligne suivante.



Le syndrome de Téva

Bonjour, je m'appelle Téva et j'ai voulu essayer de modifier votre programme pour qu'il me dise "Bonjour Téva". Seulement voilà, j'ai l'impression que l'accent de Téva ne s'affiche pas correctement... Que faire ?


Tout d'abord, bonjour Téva

C'est une question très intéressante que vous nous posez là. Je tiens en premier lieu à vous féliciter pour votre esprit d'initiative, c'est très bien d'avoir eu l'idée de modifier un peu le programme. C'est en "bidouillant" les programmes que je vous donne que vous allez en apprendre le plus. Ne vous contentez pas de ce que vous lisez, essayez un peu vos propres modifications des programmes que nous voyons ensemble !


Bien, maintenant pour répondre à la question de notre ami Téva, j'ai une bien triste nouvelle à vous annoncer : la console de Windows ne gère pas les accents

Par contre la console de Linux oui


A partir de là vous avez 2 solutions :


oPasser à Linux. C'est une solution un peu radicale et il me faudrait tout un cours entier pour vous expliquer comment vous servir de Linux. Si vous n'avez pas le niveau, oubliez cette possibilité pour le moment :p

oNe pas utiliser d'accents. C'est malheureusement la solution que vous risquez de choisir. La console de Windows a ses défauts que voulez-vous. Il va vous falloir prendre l'habitude d'écrire sans accents. Bien entendu, comme plus tard vous ferez probablement des programmes avec des fenêtres, vous ne rencontrerez plus ce problème-là. Je vous recommande donc de ne pas utiliser d'accents temporairement, pendant votre apprentissage dans la console. Vos futurs programmes "professionnels" n'auront pas ce problème, rassurez-vous.


Pour ne pas être gêné, vous devrez donc écrire sans accent :

printf("Bonjour Téva\n");


On remercie notre ami Téva pour nous avoir soulevé ce problème


ps : si d'aventure vous vous appeliez Téva, sachez que je n'ai rien contre ce prénom C'est simplement le premier prénom avec un accent qui m'est passé par la tête  

Et puis bon, il faut toujours que quelqu'un prenne pour les autres, que voulez-vous  

Créé avec HelpNDoc Personal Edition: Créer des documents d'aide HTML facilement