Bonjour tout le monde,
Je débute en C, et je suis en train de faire un petit jeu "plus ou moins".
Le programme marche très bien si on lui rentre des chiffres, mais il fais une boucle infinie si on rentre des caractères.
Donc, ce que je veut maintenant arriver à faire, c'est pouvoir tester ce que rentre l'utilisateur, et lui afficher par exemple "veuillez rentrer un nombre svp".
La où je bloque, c'est que les caractères sont enregistrés en mémoire comme des nombres, donc comment détécter si l'utilisateur à rentré un caractère ou un nombre ?
Sinon, avez-vous un bout de code qui ressemble à ce que je veut faire pour que je vois comment aurais fait un non-débutant ?
Merci.
Pierre.
PS : si ça peut servir, voilà mon code actuel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 #include <stdio.h> #include <stdlib.h> #include <time.h> // pour la génération du nombre aléatoire int main(void) { printf("Jeu \"Plus ou moins\"\n"); printf("Essayez de trouver le plus rapidement possible le nombre entre 0 et 101 :\n\n"); srand(time(NULL)); #define max 100 #define min 1 char nbATrouver=(rand() % (max - min + 1)) + min; int nombre, i; for (i=1; nombre!=nbATrouver; ++i) { printf("Essai %ld : ", i); scanf("%ld", &nombre); if (nombre==nbATrouver) { printf("\nBravo !\n\n"); } else if (nombre<nbATrouver) { printf("Trop petit\n\n", nombre); } else { printf("Trop grand\n\n", nombre); } } system("PAUSE"); return 0; }
Partager