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

- - Dernière réponse :  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.



Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
1719
Date d'inscription
mardi 12 juillet 2011
Statut
Membre
Dernière intervention
20 juillet 2012
238
1
Merci
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)

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 62797 internautes nous ont dit merci ce mois-ci

vordano
Messages postés
1719
Date d'inscription
mardi 12 juillet 2011
Statut
Membre
Dernière intervention
20 juillet 2012
238 -
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)
mais j'ai executer le programme cent fois! sans aucun error
l"error so repose lorsqe j'entre un nombre negatif ,c cela ce que vous essayer de m'expliquer?
vordano
Messages postés
1719
Date d'inscription
mardi 12 juillet 2011
Statut
Membre
Dernière intervention
20 juillet 2012
238 -
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 ^^
ahhh bon oui c'est exact si on entre 1.6 ca va planter surement j'avais dans la tete qu'on va selement entre des nombres entre 10 et 99 mais bien maintenant
0
Merci
Bonjour Arnaud
voulez vous dire si j'entre 12(douze) if va mettre 1 dans un variable et 2 dans un autre?
0
Merci
Bonsoir Techno01

C'est exactement ça !
0
Merci
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
Merci
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?
Messages postés
1719
Date d'inscription
mardi 12 juillet 2011
Statut
Membre
Dernière intervention
20 juillet 2012
238
-2
Merci
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