Conversion char* to unsigned int
Fermé
S.A.
-
21 déc. 2011 à 13:59
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 21 déc. 2011 à 15:20
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 21 déc. 2011 à 15:20
A voir également:
- Conversion char* to unsigned int
- Qwerty to azerty - Guide
- Video to video - Télécharger - Conversion & Codecs
- Conversion bytes en mo ✓ - Forum Webmastering
- Acsm to pdf ✓ - Forum PDF
- Majuscule to minuscule - Guide
4 réponses
Bonjour
Sauf erreur..
c'est bien &endptr (car c'est un char **) par contre le paramètre suivant ne peut pas être 2 car c'est la base et ton nombre contient autre chose que des 0 et de 1. Tu devrais mettre 10
Sauf erreur..
c'est bien &endptr (car c'est un char **) par contre le paramètre suivant ne peut pas être 2 car c'est la base et ton nombre contient autre chose que des 0 et de 1. Tu devrais mettre 10
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
21 déc. 2011 à 14:02
21 déc. 2011 à 14:02
valeur=strtoul("36",endptr,2);
devrait fonctionner.
devrait fonctionner.
merci de votre réponse mais malheureusement ça marche pas, ça m'ajoute le warning: passing argument 2 of `strtoul' from incompatible pointer type
/usr/include/stdlib.h:188: note: expected `char ** __restrict__' but argument is of type `char *'
Et quand je change le type de char * endptr en char ** endptr ça me garde toujours mon warning de ISO et ça m'affiche 0
/usr/include/stdlib.h:188: note: expected `char ** __restrict__' but argument is of type `char *'
Et quand je change le type de char * endptr en char ** endptr ça me garde toujours mon warning de ISO et ça m'affiche 0
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
21 déc. 2011 à 15:20
21 déc. 2011 à 15:20
oui, désolé, j'ai dit une grosse connerie, j'ai commencé à modifier, mais trop attendu.
Geo373
Messages postés
600
Date d'inscription
mercredi 10 juin 2009
Statut
Membre
Dernière intervention
29 juillet 2014
96
Modifié par Geo373 le 21/12/2011 à 14:17
Modifié par Geo373 le 21/12/2011 à 14:17
Edit: j'ai dit n'importe quoi sur mon post.
Oui c'est ce que j'ai trouvé sur le man ,
strtoul() stocke l'adresse du premier caractère invalide dans *endptr. S'il n'y avait aucun chiffre valide, strtoul() stocke la valeur originale de la chaine de caractère dans *endptr. (Donc, si *nptr n'est pas '\0' et si **endptr vaut '\0' en retour, la chaîne entière est valide.)
strtoul() stocke l'adresse du premier caractère invalide dans *endptr. S'il n'y avait aucun chiffre valide, strtoul() stocke la valeur originale de la chaine de caractère dans *endptr. (Donc, si *nptr n'est pas '\0' et si **endptr vaut '\0' en retour, la chaîne entière est valide.)
Geo373
Messages postés
600
Date d'inscription
mercredi 10 juin 2009
Statut
Membre
Dernière intervention
29 juillet 2014
96
21 déc. 2011 à 14:24
21 déc. 2011 à 14:24
Merci du renseignement, j'avais pas fait gaffe à la fonction en elle même.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
21 déc. 2011 à 15:19
21 déc. 2011 à 15:19
Je ne sais pas d'où vient le Warning, mais convertir 36 en base 2, c'est impossible, car en base 2 tu n'a que des 0 et des 1.
21 déc. 2011 à 14:16