Probleme en C++
Fermé
Barenaked lady
-
1 juin 2005 à 00:54
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 - 1 juin 2005 à 16:34
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 - 1 juin 2005 à 16:34
6 réponses
greg49
Messages postés
154
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
12 septembre 2007
8
1 juin 2005 à 09:51
1 juin 2005 à 09:51
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
Malinois
Messages postés
6
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
10 octobre 2005
1 juin 2005 à 11:34
1 juin 2005 à 11:34
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
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
1 juin 2005 à 12:47
1 juin 2005 à 12:47
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
profiler_21
Messages postés
6
Date d'inscription
samedi 28 mai 2005
Statut
Membre
Dernière intervention
13 janvier 2006
1
1 juin 2005 à 13:51
1 juin 2005 à 13:51
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.
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
1 juin 2005 à 16:34
1 juin 2005 à 16:34
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.
int main()
{
int nb1=saisie();
int nb2=saisie();
int nb3=saisie();
...
return 0;
}
aucun bp pour le include ! string fait partie de la STL.