Probleme en C++
Barenaked lady
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
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 !
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
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
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
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
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
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.
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.
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 .
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 .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.