[C++] Séparé un int en deux

Fermé
Arnaud.g83 - 18 nov. 2011 à 18:20
 Techno01 - 18 nov. 2011 à 20:12
Bonsoir,

Mon problème est simple. L'utilisateur saisi un unsigned (2 chiffre) , et je n'arrive pas a faire en sorte que le programme le sépare en deux pour mettre le premier chiffre dans une variable, et le deuxieme dans une autre. Et je veux que cela reste des unsigned car elle servent en tant qu'unsigned dans le reste du programme...

Si vous avez des questions n'hésitez pas...

Merci par avance de votre aide.



6 réponses

vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
Modifié par vordano le 18/11/2011 à 19:27
Techno01 ton code est faux :P
dans le cas ou les unités sont différentes de 0, ton nom/10 va retourner un flottant, ce qui fera planter ta variable integer :)

ma méthode est plus simple et est applicable pour plus de 2 chiffre

le mode unsigned dis juste que le int ne peux pas être signé (donc affichage positif je crois). donc le résultat sera obligatoirement compatible avec des variables unsigned (tu déclare ta variable résultat comme étant un unsigned int et c'est tout (même si a mon avis le unsigned est inutile)
1
ne vous en faites pas c mieux s"il est faux mais ici je ne fait que respecter ce qu'il vient de dire "unsigned (2 chiffre) "
0
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
18 nov. 2011 à 19:48
oui mais qu'il soit unsigned ou pas, quand tu va diviser le int par 10, c'est sensé donner un flottant, donc l'appli va planter (a part si le int fais la conversion tout seul, dans ce cas là j'ai rien dis)
0
mais j'ai executer le programme cent fois! sans aucun error
0
l"error so repose lorsqe j'entre un nombre negatif ,c cela ce que vous essayer de m'expliquer?
0
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
18 nov. 2011 à 19:59
hum donc le type int fais bien la conversion d'un flottant en int. du coup oubli ce que j'ai dis, ca ne s'applique pas (apparament) a ton programme
enfin tu as essayé en mettant une valeur comme par exemple 16 ? (je sais pas si le 1.6 est transformé en 1 ou en 2...)
mais par contre si on transpose ton programme dans un language qui ne fait pas la conversion des flottants en int automatiquement, le programme planterais ^^
0
Bonjour Arnaud
voulez vous dire si j'entre 12(douze) if va mettre 1 dans un variable et 2 dans un autre?
0
Bonsoir Techno01

C'est exactement ça !
0
le voila et bon corage
# include <iostream>
using namespace std;

main()
{
unsigned int nombre,dezaine,unite;
cout << "Entrez un nombre a : " ;cin >> nombre ;
dezaine = nombre/10;
unite = nombre%10;
cout << "1er nombre " << dezaine << endl;
cout << "2em nombre " << unite << endl;
return 0;
}
0

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

Posez votre question
Bonsoir verdano,

Merci a vous deux, l'idée de verdano correspond plus a ce que je cherche.

Mais après avoir appliquer itoa et substr, comment rendre le caractere sorti en Unsigned?
0
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
18 nov. 2011 à 18:48
il suffit de traiter le int comme était un string avec la fonction itoa(int)
ensuite tu découpe ton string avec substr()

il ne te reste plus qu'a chercher sur google comment utiliser ces deux méthodes
-2