Je suis nouveau et tré tré tré débutant.
Je cherche à eviter le bug lorsque l'utilisateur rentre une lettre à la place d'un nombre.
Comment puis je éviter ca avec quelquechose de simple?????
Urgent!
Merci
Version imprimable
Je suis nouveau et tré tré tré débutant.
Je cherche à eviter le bug lorsque l'utilisateur rentre une lettre à la place d'un nombre.
Comment puis je éviter ca avec quelquechose de simple?????
Urgent!
Merci
en fesant un test conditionel...
il faut savoir avant tout que chaque caractère possède une "valeur decimal" ( ou un code ascii si tu préfère) .
Par exemple le code ascii du caractère "a" = 97, celui du "b"=98 celui du "1"=49
(essaye d'en apprendre plus par toi meme sur le code ascii).
une fois que l'on a compris ca....et ben tu fait un teste avec les valeurs ascii
du caractère que tu entre
comme ceciCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <iostream> #include <conio.h> using namespace std; int main(){ int nbr; printf("entrer un nombre:\n"); scanf("%c",&nbr); if((nbr<57)&&(nbr>30)){ printf("c'est un nombre !!"); } else printf("c'est un caractere..."); getch(); }
:-/
Les codes ASCII ne sont pas nos amis. Ils obscurcissent le code sans qu'on ait rien à y gagner. En particulier là alors que l'on veut tester des égalités.
Un char est un nombre. Donc '0' est un nombre de même que 'a' ou '$' sont des nombres -- l'utilisation des apostrophes n'est pas innocente.
Dans le genre, les codes ASCII ne sont pas nos amis, le delta entre 30 et 57 me parait un peu exagéré pour coder dix valeurs. Définitivement utiliser '0' et '9' pour ce genre de tests. Voire mieux std::isdigit (qui est déclaré dans <ctype>), ou encore la version C++ qui est dans <locale>.
Dans tous les cas, c'est compliqué pour rien ici. Laurent a donné l'entrée de la FAQ qui traite la lecture de nombres au clavier.
C'est loin d'etre du C++, d'ailleur c'est du CCitation:
Envoyé par bagerra
Ce qui est très paradoxal c'est le
avec des printf() et scanf()Code:
1
2 #include<iostream> using namespace std;
rappelons que printf() et scanf() dépende de <stdio.h>
desoler que voulez vous moi aussi je debute...j'essaye de faire de mon mieux:oops: