Forum Programmation.autre Convertir int en char

Posté par  .
Étiquettes : aucune
0
6
août
2005
Bonjour, je suis nouveau avec kdevelop et j'aimerai bien réalisé un chronometre. Seulement je ne sais comment convertir un "int" en "char". je vous donne un petit bout de mon code :

int p;
( ++p );
affiche->setText( p );

Et setText ne prend pas "int", alors si vous avez une idée car j'ai essayé pas mal de trucs sur le net mais sans résultat. Merci d'avance.
  • # langage ?

    Posté par  . Évalué à 2.

    Kdevelop est un environnement de développement, pas un langage...

    Aussi serait-il souhaitable que tu nous indique quel langage de programmation tu utilises, pour qu'on puisse t'apporter une réponse autre que p.toString()
    (vu que tu ne code visiblement pas en Java, cette réponse ne t'intéresse probablement pas :D)
  • # kdevelop > c++ > kde > simple "hello world"

    Posté par  . Évalué à 1.

    Bon je crois que c'est c++ mais j'ai essayé avec des trucs de c++ mais ça marche pas. j'ai essayé avec "itoa" mais n'existe pas dans la librairie kdevelop. Merci encore.
  • # itoa.h

    Posté par  . Évalué à 1.

    C'est ça le problème car je ne sais quel fichier mettre, vu que je suis novice j'essai de faire copie/coller des codes et c'est à partir de ça que j'essai de comprendre mais c'est pas facile. je n'arrive pas à convertir int en char et inversement. Pour itoa, quel fichier faut il inclure ? Merci
    • [^] # Re: itoa.h

      Posté par  . Évalué à 2.

      j'y connais pas grand chose aux objets fournis par KDE mais étant donné que c'est du QT, tu doit avaoir accès à l'objet QString.

      Cette objet propose une fonction appelée "sprintf" qui te permet de construire une chaine de caractères à partir de types variables.

      D'après ce que j'ai vu, ça s'utilise comme le sprintf classique:

      int p;
      p++; //la post incrementation est préférable
      QString* maString =new QString();
      affiche->setText(maString->sprintf("Ceci est un int : %d",p));
      //%d dans la chaine indique que le paramètre "p" que tu lui passe est un int. Tu peux de la même façon construir ta chaine avec plusieurs paramètre. Refère toi à la doc du sprintf.

      Ca doit être la même synthaxe que ça : http://www.cplusplus.com/ref/cstdio/sprintf.html(...)

      PAr contre ça doit pas être la solution forcement la plus directe....
      • [^] # Re: itoa.h

        Posté par  . Évalué à 2.

        Ah, au fait, c'est quoi le type de ton objet "affiche"?
        Y'a pas une fonction pour faire sensiblement la même chose que ce que je t'ai dit mais proposé par ton objet "affiche"?
    • [^] # Re: itoa.h

      Posté par  . Évalué à 2.

      Tu peux aussi utiliser les objets STL si tu veux faire du C++ pour le C++ :

      #include <iostream>
      #include &mt;sstream>

      using namespace std;


      puis

      int p;
      stringstream oss;

      (++p);
      oss << dec << p;
      affiche->setText (oss.str());
      oss.str("");


      Tu peux utiliser oss.str().c_str() si l'objet instancié en affiche ne connait pas les chaînes STL. La ligne d'après sert à vider l'objet ostringstream pour pouvoir le réutiliser sans avoir à le détruire puis le recréer (ça a l'air bête comme çà, mais j'ai beaucoup trainé sur Google avant de trouver).
  • # Qt

    Posté par  (site web personnel) . Évalué à 2.

    Si tu utilise Qt, ce n'est pas un char*, mais un QString dont tu as besoin

    affiche->setText( QString::number(p) );

    Et la documentation de Qt (doc.trolltech.com) devrait te servir de référence
  • # int en char

    Posté par  . Évalué à 1.

    Grand merci à tous. ça marche bien maintenant avec l'instruction de Gof "affiche->setText( QString::number(p) );". J'ai regardé aussi les page de sprintf et autres et ça m'a beaucoup aider. Encore merci.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.