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
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
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
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 ceci
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 #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.
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
C'est loin d'etre du C++, d'ailleur c'est du CEnvoyé par bagerra
Ce qui est très paradoxal c'est le
avec des printf() et scanf()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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![]()
Partager