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 :

int dans un char*


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut int dans un char*
    bonjour,

    alors voici mon probleme:
    j utilise fltk pour créer une interface graphique, et j ai besoin de créer un menu dont le nombre de "choix" dépend d un parametre donné par l utilisateur.
    pour créer ce "menu" je fais une boucle sur i variant de 1 à n choisi par l utilisateur et à chaque itération je rajoute une ligne au menu.
    en fait j aimerais que le nom de la ligne ajouté comprenne i.
    c est à dire(si n=3):

    - choix 1
    - choix 2
    - choix 3

    or, le parametre que l on passe pour rajouter une ligne est un char* ou const char*.la boucle ressemble à ça:


    int i=0;
    const char *ch;
    al_ba->clear();
    while( i<n->value())
    {
    ch="choix ";
    al_ba->add(ch);
    i++;
    }

    et je voudrais donc que à chaque itération, ch soir égal à "choix i"

    vous avez une idée?

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    tu peux utiliser sprintf il me semble.

    A+
    K

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    En C++ ?
    Si tu as vraiment besoin d'un char*, tu peux éventuellement rester sur sprintf().
    Si un const char* te suffit, utilise un std::ostringstream().
    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.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    oui c'est en C++.
    j ai fait ça et ça marche:

    int i=0;
    char ch[80];
    al_ba->clear();
    while( i<n->value())
    {
    sprintf(ch,"Rule number %d",i);
    al_ba->add(ch);
    i++;
    }

    merci!

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    la version C++ c'est:

    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
     
       #include <sstream>
     
           ...
     
        int i=0;
        al_ba->clear();
     
        while( i<n->value())
        {
            std::ostringstream ch;
            ch << i;
     
            al_ba->add( ch.str().c_str() );
            i++;
        }
    sinon soit conscient que c'est du C

    Et avec boost c'est plus sympa:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        #include <boost/lexical_cast.hpp>
     
        while( i<n->value())
        {
             al_ba->add( boost::lexical_cast< std::string >( i ).c_str() );
        }

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    ok merci beaucoup!
    j'ai juste rajouté "Rule number"..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int i=0;
        al_ba->clear();
    	while( i<n->value())
        {
            std::ostringstream ch;
            ch << "Rule number "<<i;
     
            al_ba->add( ch.str().c_str() );
            i++;
        }

Discussions similaires

  1. Réponses: 19
    Dernier message: 30/05/2006, 18h43
  2. comment mettre des int dans une char??
    Par gronaze dans le forum C
    Réponses: 5
    Dernier message: 21/04/2006, 17h02
  3. Réponses: 6
    Dernier message: 28/10/2005, 12h11
  4. Insertion d'un char dans un char *
    Par bugmenot dans le forum C
    Réponses: 2
    Dernier message: 22/10/2005, 15h17
  5. Réponses: 6
    Dernier message: 06/10/2005, 11h30

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