Comment saisir/afficher une variable dans la fenêtre graphique ?

 Remarques sur les fonctions printf() et scanf()

Attention, il faut savoir qu'une fois la fenêtre graphique ouverte (commande initwindow();), il n'est plus possible d'utiliser les fonctions printf(); et scanf();. Concernant la saisie d'informations, si on désire une certaine interaction avec l'utilisateur (saisie de chaînes de caractères par exemple) il est préférable de le réaliser en mode console, afin de profiter de la puissance des fonctions scanf(); ou gets();.

Saisie de valeurs

Dans la fenêtre graphique, seule la fonction int getch(void); est disponible. Cette fonction renvoie le code ascii d'un seul caractère à la fois !! Pour faire l'acquisition d'un nombre ou d'un mot saisis au clavier, il faut par conséquent écrire soi-même les fonctions adéquates, qui nécessitent par exemple des structures itératives ou des conversions de types.

Affichage d'une chaîne de caractères

Pour l'affichage en mode graphique, il existe la fonction void outtextxy(int x, int y, char *texte); qui permet d'afficher la chaîne de caractères texte aux coordonnées x,y. Le formatage du texte (police, orientation, taille) doit être défini à l'aide de la fonction void settextstyle(int font, int direction, int charsize);. Exemple, pour afficher le mot "Bonjour", on peut soit écrire directement:

outttextxy(10,10,"Bonjour");

soit avoir stocké le mot "Bonjour" dans une variable :

char mot[10]="Bonjour";
outtextxy(10,10,mot);

soit l'avoir recopié à l'aide de la fonction strcpy(); de la bibliothèque string.h :

char mot[10];
strcpy(mot,"Bonjour");
outtextxy(10,10,mot);

Affichage d'un nombre entier

Lorsque la variable à afficher est un nombre entier, par exemple pour afficher un score dans un jeu, il faut obligatoirement convertir ce nombre entier en chaîne de caractères puisque la fonction outtextxy(); n'admet que le type chaîne de caractères en argument. Pour cela, on utilise la fonction de conversion de type itoa(int nbre_entier, char *texte, int base); inclue dans la bibliothèque stdlib.h. Exemple :

int nbre_entier=4;
char score[10];
itoa(nbre_entier, score, 10);
outtextxy(10,10,score);