C++ VALIDATION

k-23 Messages postés 252 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je voudrais savoir comment je peut valider une valeur en c++

int b:

cin>>b;

if (b >= 0){

cout<< "allo";

}else {

cout <<"salut";
}

voila mon probleme quand je met un entier c correct s'affiche allo mais quand je met un caractere s'affiche aussi allo(jai pas le droit dutiliser la stl) merci pour laide

5 réponses

k-23 Messages postés 252 Date d'inscription   Statut Membre Dernière intervention   9
 
en fait lorsque je rentre une lettre sa donne toujours comme si jaurais rentrer zero
0
k-23 Messages postés 252 Date d'inscription   Statut Membre Dernière intervention   9
 
quelqu'un pourrais maider
0
bachiro_27
 
pour traiter les caractère vous devriez déclarer un char


char b;// possibilité de traiter les int et les caractère
0
k-23 Messages postés 252 Date d'inscription   Statut Membre Dernière intervention   9
 
ca veut dire qu'il va falloir que je me fasse un tableau de char si le nombre est 12323213123123 la taille de mon tableau nauras pas de fin
0
saly18
 
je peux vous dire la cause:

Caractère (char)

Le type char  permet de stocker la valeur ASCII d'un caractère, c'est-à-dire un nombre entier !

Par défaut les nombres sont signés, cela signifie qu'ils comportent un signe. Pour stocker l'information concernant le signe (en binaire), les ordinateurs utilisent le complément à deux. Une donnée de type char est donc signée, cela ne signifie bien sûr pas que la lettre possède un signe mais tout simplement que dans la mémoire la valeur codant le caractère peut être négative...

Si jamais on désire par exemple stocker la lettre B (son code ASCII est 66), on pourra définir cette donnée soit par le nombre 66, soit en notant 'B' où les apostrophes simples signifient code ascii de...


cdlt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
La solution, c'est plutôt que de capturer un entier, de capture du texte et de faire le traitement après.
char d[10];
cin>>d;
int i=0;
while (d[i]!='\0')
   {
    if (d[i]<'0' || d[i]>'9') cout<<"erreur \n";
    i++;
    }
// passage de chaine à nombre.
int b;
sscanf(d,"%d",&b); // vérifier l'utilisation de cette fonction, car je l'utilise peu
Et là tu es sur que tu as un nombre. Enfin, là je ne traite pas l'erreur, je te laisse le soin de le faire ;-)
0