[C] int <--> char

Résolu
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 !    ~

3 réponses

  1. Contributeur
    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

    ++
    2
    1. 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 :-)
      0
      1. Contributeur
        int i=0;
        sscanf(buf, "%d", $i);


        On est pas en PHP la !!! lol

        merci et l'inverse ? pareil ?
        0
      2. Contributeur
        Arrf.. en fait l'inconvénient avec ta méthode c'est qu'il faut absolument que l'espace nécessaire soit déjà allouer...

        Tant pis, je jetterai un coup d'oeil dans la bible en rentrant ce soir !

        merci
        ++
        0
      3. 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 !
        0
    2. 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...
      0