IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

Convertir int en chaîne de caractère


Sujet :

Réseau C

  1. #41
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut Eurêka ... ça marche
    Voilà j'ai enfin fixé mon problème. Pour ceux que ça intéresse, voici le bout de code pour envoyer les données:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    buffer_in[0] = '\0';
    int userAttrSize = strlen(adminNameIn) + HEADER_SIZE;
     buffer_in[1] = userAttrSize >> 8; // Most Significant Bit
    buffer_in[2] = (userAttrSize >> 0) & 0xFF; // Least Signigficant Bit
    memcpy(&(buffer_in[3]), adminNameIn, strlen(adminNameIn));

  2. #42
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par be_tnt
    Voilà j'ai enfin fixé mon problème. Pour ceux que ça intéresse, voici le bout de code pour envoyer les données:
    Pour être portable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    size_t userAttrSize = strlen(adminNameIn) + HEADER_SIZE;
    buffer_in[0] = '\0';
    buffer_in[1] = (userAttrSize >> 8) & 0xFF; // Most Significant Bit
    buffer_in[2] = (userAttrSize >> 0) & 0xFF; // Least Signigficant Bit
    memcpy (buffer_in + 3), adminNameIn, strlen(adminNameIn));
    Il faut bien sûr que buffer_in soit suffisamment grand...
    Pas de Wi-Fi à la maison : CPL

  3. #43
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Pour être portable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    size_t userAttrSize = strlen(adminNameIn) + HEADER_SIZE;
    buffer_in[0] = '\0';
    buffer_in[1] = (userAttrSize >> 8) & 0xFF; // Most Significant Bit
    buffer_in[2] = (userAttrSize >> 0) & 0xFF; // Least Signigficant Bit
    memcpy (buffer_in + 3), adminNameIn, strlen(adminNameIn));
    Il faut bien sûr que buffer_in soit suffisamment grand...
    euh C est portable?
    C'est quoi la diff entre int et size_t?

  4. #44
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par be_tnt
    euh C est portable?
    Le C n'est portable que si on prend les précautions qui s'imposent.
    Par exemple, rien ne dit qu'un char fasse 8 bits. d'où le & FF.
    D'autre part, le résultat des opérations binaires sur des nombre signés dépend de l'implémentation.
    C'est quoi la diff entre int et size_t?
    size_t est (entre autres) le type retourné par strlen().
    De plus, c'est un entier non signé. C'est donc le type tout à fait indiqué pour l'usage.
    Pas de Wi-Fi à la maison : CPL

  5. #45
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut
    Oki Merci pour toutes ces infos!

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Réponses: 9
    Dernier message: 17/02/2007, 17h43
  2. Réponses: 4
    Dernier message: 22/12/2006, 15h10
  3. Convertir une chaîne de caractères
    Par PedroBD dans le forum Langage
    Réponses: 3
    Dernier message: 13/11/2006, 17h25
  4. Réponses: 3
    Dernier message: 09/05/2006, 14h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo