[C] int <--> char
Résolu
kij_82
Messages postés
4102
Date d'inscription
Statut
Contributeur
Dernière intervention
-
kij_82 Messages postés 4102 Date d'inscription Statut Contributeur Dernière intervention -
kij_82 Messages postés 4102 Date d'inscription Statut Contributeur Dernière intervention -
Bonjours,
Pour le serveru, j'aurais besoin de passer un entier du serveur au client, pour cela je dois lemettre dans un buffer, mais à la receprtion il n'affiche pas l'entier.
Je voudrais donc savoir comment récupérer l'enter coté client ?
merci
++
--
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Pour le serveru, j'aurais besoin de passer un entier du serveur au client, pour cela je dois lemettre dans un buffer, mais à la receprtion il n'affiche pas l'entier.
Je voudrais donc savoir comment récupérer l'enter coté client ?
merci
++
--
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
3 réponses
-
Ben en fait toute cees solution marche, j'ai choisis les première qui venait en faites, c'est à dire :
pour convertir une chaine en long int :char *end; char buf[256] = "45"; long int n = strtol(buf,&end,10);
Et l'inverse :n=4; sprintf(buf,"%d",n);
Merci les gars, j'vous paye une tournée de bière franboise / harend / citron / kiwi
++ -
Pour le serveru
et pour le clinte c'est pour quand ??? ok je sors... --->
bref si tu le récupères dans un char, tu peux utiliser la fonction sscanf() :char buf='1'; int i=0; sscanf(buf, "%d", $i);
et voili !
++ kij :-)-
-
-
en fait l'inconvénient avec ta méthode c'est qu'il faut absolument que l'espace nécessaire soit déjà allouer...
ben si tu arrives à me donner une fonction en C où tu peux mettre une valeur dans une mémoire non-allouée, ben tu m'appelles !!!
pour l'inverse ça doit être comme en php (en fait c'est plutot le php qui a copié le C) c'est-à-dire sprintf(...)
mouarf !
-
-
moi j'avais fais un buffer en char*.
Pour passer un int dedans :
int i;
memcpy(buffer,&i,sizeof(int);
et pour le récupérer:
int i;
memcpy(bufffer,&i,sizefo(int));
Je sais pas si ça peut aider...