Concatener 2 int

Uims Messages postés 101 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 31 octobre 2006 - 13 mai 2006 à 19:14
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 14 mai 2006 à 13:46
Bonjour





Je suis entrain de faire un générateur de mot de passe, j'ai décider de tirer aléatoirement 8 chiffres.





Il y a :





int chiffre1;


int chiffre2;


...


int chiffre8;





Mais comment mettre tous ces chiffres dans un int password comme avec strcat pour les char????




Merci d'avance





Uims

13 réponses

nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
13 mai 2006 à 19:30
Tu passe par des chaines intermédiaires avec atoi et itoa, ou tu effectue des décalcages de bits je pense.
(tu a exactement le même avatar que vecchio, j'ai cru que c'était lui ^^).
0
Uims Messages postés 101 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 31 octobre 2006
13 mai 2006 à 19:36
Non scrat est inversé je crois.

Aurait tu la synataxe des deux commandes que tu m'a proposéer stp?

Merci de ton aide

Uims
0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
13 mai 2006 à 19:40
int atoi(const char* lpStr); //Char -> Int
char* itoa(int num, char* buffer, int radix); //Int -> Char

Le radix est en fait le système numérique utilisé (je pense). Il faut mettre le plus souvent 10.
0
Uims Messages postés 101 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 31 octobre 2006
13 mai 2006 à 20:24
^^ bon t'aurais pas un exemple, le radix j'ai pas compris...

Dsl mais c'est mes grands débuts ^^

Uims
0

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

Posez votre question
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
13 mai 2006 à 20:37
char* numberinstring = new char[16];
itoa(200, numberinstring, 10);
//numberinstring="200"
int stringinnumber = atoi(numberinstring);
//stringinnumber=200
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 mai 2006 à 20:39
int n;
char buf[12];

n = 31;
itoa(n, buf, 10); // BASE 10
buf contient "31"

itoa(n, buf, 16); // BASE 16 (hexa)
buf contient "1f"

ciao...
BruNews, MVP VC++
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
13 mai 2006 à 23:10
int password??? C'est quoi ça.
Si tu veut dire int, c'est assez risqué de faire un password avec un int car la valeur maximal est 4294967295(32Bits (0xFFFFFFFF Hexa)). J'imagine que tu veut concatener le resultat dans un seul int? Si tu veut faire comme ça, il est impossible de dépasser 4294967295.
Par exemple, dison que tu tire 8 chiffres
les trois premier sont 1
les trois suivant sont 2
le 7eme est 6
et le dernier est 8.
En "concaténant" tout ça on obtien 86222111. Bang. C'est trop élevé. Je te conseille vivement de faire ce mot de passe dans un tableau char (ou int mais il sera plus gros en octect) car comme ça, il pourra accepter autant de valeur que le tableau peu en contenir. Pour comparer le tableau char, tu utilise strcmp.

Corrigez moi si je fais fausse route mais c'est ce que je comprend de sa question.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
13 mai 2006 à 23:43
Ok je comprend. Ne te fis pas à l'exemple que j'ai mit en haut. Je crois que je me suis mêlé avec l'hexadecimal (J'ai passé ma journée la dessus). Pour 8 chiffres dans un int ça peut marcher mais attention si tu dépasse les 8 chiffres.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011
14 mai 2006 à 11:25
int password;
char buffer[16];


sprintf(buffer, "%d%d%d%d%d%d%d%d", 8,7,6,5,4,3,2,1);
password = atoi(buffer);
0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
14 mai 2006 à 12:21
C'est vrai que c'est pas con ça... J'y avais pas pensé du tout.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 mai 2006 à 12:26
Sur un buffer de 16 octets, risque souvent de badaboum.

ciao...
BruNews, MVP VC++
0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
14 mai 2006 à 12:27
Je pense pas : 8 chiffres dans 16 octets = 7 octets libres (en comptant le zero final).
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 mai 2006 à 13:46
ben si on est certain que ce sont 8 chiffres entre 0 et 9 aklors pas besoin de cette calamité de sprintf ni d'aucune autre fonction.
buffer[0] = chfr1 + 48;
buffer[1] = chfr2 + 48;
buffer[2] = chfr3 + 48;
....
....
buffer[8] = 0; // FIN DE CHAINE

ciao...
BruNews, MVP VC++
0
Rejoignez-nous