Probleme en C++

Barenaked lady -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir chers amis ,

Je voudrais creer un programme :
---Qui te demande de donner 3 entiers , qui les lis et
---qui ne les saisit que si les charactères entrés sont effectivement des entiers, puuis
---qui fait la somme de ces entiers entre eux !

J'ai essayer d'initialiser mes trois nombres comme des entiers et j'ai fait le programme , mais lorsque je donne des lettres comme 'a' 'b' ou 'c' , mon programme plante !
je ne sais plus que faire ,une personne bien intentionnée m'a parlé vaguement des codes asci (lire aski), mais je ne sais pas comment les utiliser !

Au secours à l'aide !

6 réponses

greg49 Messages postés 154 Date d'inscription   Statut Membre Dernière intervention   8
 
salut,

il faut tester ce que tu saisi dans des conditions ( if...), tou ce qui est tapé au clavier correspond à un caractère ASCII (tape table ascii dans google) , tu test pour savoir si ce qui est tapé est bien ce que tu veu et non pas des lettre où autres caractères!

Voili, voilou
0
Malinois Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Essaye de rajouter ca comme fonction

int saisie ( int x){
do{
x=getchar();
}while (x <48 || x>57);
return x;
}

et quand tu l'appel dans ton main tu remplace x par ta variable
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Malinois, si tu fait ça, tu te contente d'avoir un entier plus petit que 10, et tu renvoie une valeur fausse.
moins, je dirai plutot
#include <string>
int saisie()
{
string c;
cin>>c;
for (int i=0;i<c.size();i++)
if (c[i]<48 | c[i] >57)return saisie(); // recommence la fonction
return strtol(c.c_str());
}
une fois tes entier recuperer tu n'as plus qu' ales additionner.
0
Barenaked lady
 
Bonjour les amis (es) ,

Merci pour votre aide , spécialement Char Sniper et Malinois , mais ..., je ne sais pas comment récuperer mes 3 entiers dans vos fonctions ,
en fait comment devrait-je faire pour insérer les fonctions que vous avez créer dans le "main()" ?

Vous l'aurez compris , nom bagage en programmation est faible !
Tout en espérant vous relire bientôt ,Merci encore de votre aide .
0

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

Posez votre question
profiler_21 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   1
 
char snipeur , je me suis permi de fair une petite modification dans ton program pour ladapté avec le main.
mais apart cela je suis plus dac avec toi k avec Malinois.
voila mais vu kje ne suis pas tres calé en c++, je ne c pas si il arriv a reconnaitre le include <string> ou il faut prendre c dernier comme des char*.

#include <string>
int saisie(string c)
{
for (int i=0;i<c.size();i++)
if (c[i]<48 | c[i] >57)return saisie(); // recommence la fonction
return strtol(c.c_str());
}

void main()
{String a;
cout<<"enter les trois nombres";
cin>>a;
cin>>b;
cin>>c;
int nb1=saisie(a);
int nb2=saisie(a);
int nb3=saisie(a);
cout<<"la somme des trois nombre est : "<<nb1+nb2+nb3<<endl;
}

beh ecoute Barenaked lady tu nous tiens o courant . j espere que ca marcheran.
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
En reprenant ma fonction (tel quel)
int main()
{
int nb1=saisie();
int nb2=saisie();
int nb3=saisie();
...
return 0;
}
aucun bp pour le include ! string fait partie de la STL.
0