Les flux d'entrées et de sorties
Ou autrement dit, comment interagir avec l'utilisateur.
Il faut savoir qu'il y a deux choses principales lorsque l'on veux communiquer avec l'utilisateur.
Il faut:
-Afficher des choses à l'écran.
-Demander des saisies de l'utilisateur.
Nous allons voir dans ce chapitre ces deux choses là
Tout d'abord, expliquons pourquoi appelle-t-on cela flux d'entrées et de sorties:
Simplement:
-Les flux d'entrées représentent les saisies de l'utilisateur.
-Les flux de sorties les affichages à l'écran.
Les flux de sorties ou: comment afficher quelque chose à l'écran?
Pour afficher du texte à l'écran, nous allons utiliser la fonction:
printf
Une fonction est, en résumé, une instruction qui demande à l'ordinateur de réaliser quelque chose. Ici printf demande d'afficher du texte. Nous verrons les fonctions plus en détail plus tard
Pour afficher du texte avec prinf, il faut lui dire quel texte afficher, et cela ce fait comme ceci:
printf("Hello world!");
Attention de ne surtout pas oublier le point-virgule à la fin!
Ici, nous affichons à l'écran "Hello World" (sans les guillemets).
Voici donc le code complet que vous pouvez tester:
#include <stdlib.h>
#include <stdio.h>
int main()
{
printf("Hello world!");
return 0;
}
Je vous rappelle qu'il faut appuyer sur F9 pour compiler et lancer le programme avec code:block

Cela affichera normalement à l'écran:
Appuyez sur une touche pour terminer le programme
Regardons précisément ce qu'il y a d'affiché:
-->Hello world!
C'est le texte que l'on a demandé d'afficher.
-->Process returned 0 <0x0>
Cela montre que le programme s'est terminé sans erreurs.
-->execution time : 0.281 s
C'est le temps que le programme a mis avant de se terminer. Ici il a donc mis 0.281s à afficher un hello world (le temps doit peut être différent chez vous puisque cela dépend de l'ordinateur).
-->Press any key to continue.
En français "Appuyez sur n'importe quelle touche pour continuer", dans ce programme, le "continuer" se transformerait plutôt en "quitter".
Appuyez sur une touche pour fermer le programme.
Regardez maintenant dans le dossier Bin/Debug de votre projet, vous devriez avoir nomalement votre fichier éxécutable!
Lancez-le et là,......... c'est le drame :P
En effet votre programme se ferme aussitôt après avoir été lancé et par conséquant, impossible de voir votre beau et magnifique hello world!
Ne vous inquiétez pas! Le programme fait son travail! Vous lui demandez d'afficher du texte avec printf, ce qu'il fait. Vous lui mettez ensuite return 0; ce qui signifie arrête le programme!
Il est donc normal que vous ne puissiez pas avoir le texte et que le programme se ferme aussitôt!
Pour remédier à cela et, donc faire une pause, il vous suffit de mettre une de ces deux instructions avant le return 0; :
system("pause");
ou
getchar();
Attention! La fonction system ne fonctionne que sur windows et n'est pas recommandée, car il y a une faille de sécurité dans la conception de cette fonction qui permet de faire pas mal de chose malveillantes. A utiliser le moins possible donc et avec prudence.
PS: En réalité getchar() n'est pas une fontion de pause, elle attend simplement l'appui d'une touche.
Nous allons donc choisir ici d'utiliser getchar qui attent que l'utilisateur appuie sur une touche:
#include <stdlib.h>
#include <stdio.h>
int main
()
{
printf
("Hello world!");
getchar
();
return 0;
}
Ce qui va résoudre le problème de la pause. Voilà vous pouvez maintenant distribuer à vos amis votre premier programme sans qu'il ne se ferme tout de suite
Bon OK il n'affiche que du texte mais c'est un bon début
Maintenant voyons plus en détails la fonction printf
(); :
Essayez tout d'abord d'afficher le texte "Bonjour à tous!" (sans les guillemets). Allez, c'est facile!

Voici tout de même le code (j'espère que vous l'aviez trouvé :P) :
#include <stdlib.h>
#include <stdio.h>
int main()
{
printf("Bonjour à tous!");
getchar();
return 0;
}
Et maintenant lancer-le, ce qui vous donne.....:
Mais pourquoi il affiche ò alors qu'on lui demande d'afficher à? @_@
Le problème vient du fait que la console windows...ne gère pas les accents! Donc il va falloir ne pas utiliser d'accents dans la console
Donc si vous entrer un texte avec des accents pour les afficher à l'écran, vous risquez de vous retrouver avec des caractères spéciaux dans la console.
Il nous reste encore deux choses à voir avec la fonction printf:
1) Les sauts de lignes et autres commandes de mises en forme.
2) L'affichage de variables.
Les sauts de lignes et autres commandes de mises en forme
Imaginons que vous souhaitez faire un saut de ligne avant le return 0; de code::block comme indiqué en rouge ici:
au lieu de
et bien c'est possible (je pense que vous vous en doutiez légèrement

)! Vous pouvez même faire autant de sauts de lignes dans la console que vous souhaitez!
Pour cela, il suffit d'écrire

à l'endroit où vous souhaitez faire un saut de ligne. Par exemple, si vous souhaitez faire le même affichage que l'illustration d'exemple ci-dessus, il vous suffit d'écrire:
#include <stdlib.h>
#include <stdio.h>
int main
()
{
printf
("Hello world!
");
getchar
();
return 0;
}

est considéré comme un caractère à part entière. On dit que c'est un carctère d'échappement. Voici une petite liste des principaux caractères d'échappements en C:
L'affichage de variables
C'est certainement la chose qui va nous servir le plus: afficher des variables.
Imaginons que vous vouliez afficher, par exemple, le nombre de vie d'un joueur. Ce chiffre est stocké dans une variable puisqu'il peut changer.
Pour afficher une variable avec printf
(); en C, tout dépend de son type.
On n'affichera donc pas de la même manière un type int d'un type char.
Nous allons donc voir un par un les différents modes d'affichages mais rassurez vous, ils fonctionnent quasiment tous de la même manière, c'est à dire comme ceci:
#include <stdlib.h>
#include <stdio.h>
int main
()
{
printf
("type d'affichage", variable);
return 0;
}
Le type d'affichage est un symbole qui commence toujours par '%' suivi d'une lettre correspondant au type de la variable que vous souhaitez afficher.
Voici les diférents symboles permettant l'affichage de variables:
int --> %d (d pour décimal)
char --> %s (s pour string (chaine en anglais))
double --> %f
float --> %f
long --> %ld
Donc si vous souhaitez afficher une variable de type int, voici comment s'y prendre:
#include <stdlib.h>
#include <stdio.h>
int main
()
{
int ma_variable
= 45;
printf
("Ma variable vaut %d", ma_variable);
return 0;
}
Cela affichera:
Vous voyez, c'est pas si compliqué que cela

Essayez de recopier sans aide et de mémoire ce petit code en entier en essayant de comprendre ce que vous faîtes
Dans le chapitre suivant, nous allons voir la gestion des entrées et nous pourrons enfin vraiment communiquer avec l'utilisateur et commencer... les TP
Utilisation des variables La gestion des flux d'entrées