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

C Discussion :

Unsigned char vers char*


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2013
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 190
    Par défaut Unsigned char vers char*
    Bonjour !

    Question simple, comment passer de ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    unsigned char aby_ipv4[4] = {10,5,2,212};
    à cela en char* (avec les points)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char * c_ipv4 = "10.5.2.212";
    strcpy est-il une bonne piste ? Pour l'instant j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    WORD w_ipv4_char_1 = aby_ipv4[0];
    WORD w_ipv4_char_2 = aby_ipv4[1];
    WORD w_ipv4_char_3 = aby_ipv4[2];
    WORD w_ipv4_char_4 = aby_ipv4[3];
     
    char * c_index_nb1 = reinterpret_cast<char * const>(&w_ipv4_char_1);
    char * c_index_nb2 = reinterpret_cast<char * const>(&w_ipv4_char_2);
    char * c_index_nb3 = reinterpret_cast<char * const>(&w_ipv4_char_3);
    char * c_index_nb4 = reinterpret_cast<char * const>(&w_ipv4_char_4);
     
    strcpy(c_path_node,(c_index_nb1));
    strcat(c_path_node,".");
    strcat(c_path_node,(c_index_nb2));
    strcat(c_path_node,".");
    strcat(c_path_node,(c_index_nb3));
    strcat(c_path_node,".");
    strcat(c_path_node,(c_index_nb4));
    puts(c_path_node);
    mais ça me sort ça Nom : Sans titre2.png
Affichages : 125
Taille : 2,5 Ko
    et je voudrai ça Nom : Sans titre.png
Affichages : 121
Taille : 2,5 Ko

    Merci pour votre aide !

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 771
    Par défaut
    snprintf et _snwprintf (pour la version Unicode, mais non standard parce que ces abrutis ont mis 20 ans à la rajouter)

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2013
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 190
    Par défaut
    je précise que je fais une dll, je ne sais pas si snprintf fonctionne dans ce cas ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2013
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 190
    Par défaut
    et je suis sous VS 2010 ....

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Le vrai snprintf() qui retourne la longueur à allouer (sans le caractère nul terminal) n'existe sous aucune version de Visual Studio que je connaisse (Microsoft s'assoit sur C99 comme si c'était un siège de toilettes). Par contre, tu as _scprintf() qui devrait te retourner la bonne longueur.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    snprintf existe sous VC14 (VS15).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/02/2016, 15h54
  2. problème ce char vers char*
    Par KR_Prog dans le forum Langage
    Réponses: 9
    Dernier message: 17/09/2013, 21h15
  3. Casting char vers unsigned corrompu
    Par Sylvain Rousseau dans le forum Langage
    Réponses: 5
    Dernier message: 05/11/2009, 14h33
  4. pb conversion unsigned char vers char *
    Par FamiDoo dans le forum C
    Réponses: 11
    Dernier message: 24/08/2006, 18h11
  5. [Clé de registre] Conversion char* vers unsigned char*
    Par The Lord of Nesquik dans le forum C
    Réponses: 7
    Dernier message: 03/07/2006, 23h30

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