Partage
  • Partager sur Facebook
  • Partager sur Twitter

Convertir int -> string

    7 février 2012 à 18:03:05

    Bonsoir, voilà, je veux me faire la main sous visual C++.
    Je ne suis pas très bon en développement (Je débute un peu).
    J'ai eu l'idée de faire un convertisseur decimal -> binaire et binaire -> decimal.
    J'ai fait le "systeme" sous code block en mode console et ça fonctionne.
    Je voudrais maintenant le reproduire sous visual C++ en fenetre.

    J'arrive à récupérer une valeur "string" d'un TextBox et de le convertir en int : int num = int::Parse(textBox->Text);
    J'arrive à faire des calcul avec, mais après , quand je veux l'afficher dans un Label, il le faut en chaine de caractère.

    Voilà, j'ai exposé mon problème, quelqu'un aurait une solution ou une méthode qu'il pense mieux ?
    Merci et bonne soirée :)
    • Partager sur Facebook
    • Partager sur Twitter
    DNTUI
      7 février 2012 à 18:10:44

      Tu peux utiliser la manipulation de flux:
      #include <sstream>
      std::string intToString(int i) {
           std::ostringstream oss;
           oss << i;
           return oss.str();
      }
      

      Tu peux aussi utiliser les templates pour pouvoir que cette fonction prenne n'importe quel type.
      • Partager sur Facebook
      • Partager sur Twitter

      "J'aimerai faire un jeu, mais pas un gros jeu hein. Un petit truc simple du style MMO."

        7 février 2012 à 18:33:34

        Fraggy : cherches pas, c'est du C++/CLI pas du C++.

        Tout objet .NET même les Int32 dérive d'Object donc dispose de la méthode ToString.
        http://msdn.microsoft.com/en-us/librar [...] tostring.aspx

        Pour le choix du format d'encodage :
        http://msdn.microsoft.com/en-us/library/8wch342y.aspx

        Donc :
        Label->Texte = num.ToString(xxxxxxxxxx);

        xxxxxxxxxx : le format adéquat
        • Partager sur Facebook
        • Partager sur Twitter
        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
          7 février 2012 à 18:53:34

          Donc les xxxxxxxxxx, je peux les remplacer par int ?
          Et faut il inclure une librairie spéciale ?
          Merci en tout cas pour votre aide :)
          • Partager sur Facebook
          • Partager sur Twitter
          DNTUI
            8 février 2012 à 10:46:09

            Citation

            Donc les xxxxxxxxxx, je peux les remplacer par int ?



            Vous devez être un peu "jeune" en programmation objet, non ?

            ToString est une méthode de la classe Object dont dérive la classe Int32, le int "managé" est un alias sur le Type .NET Int32.

            Regardez les exemples dans les pages données en références.

            Citation

            Et faut il inclure une librairie spéciale ?


            Non, c'est de base avec les assemblies .NET, pas des lib.
            C++/CLI est une extension de C++, il faut connaître .NET quand même un peu pour s'en servir.
            • Partager sur Facebook
            • Partager sur Twitter
            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
              8 février 2012 à 17:00:31

              J'ai réussit à le faire fonctionner :)
              Et j'aurais une ou deux question de plus,

              Pourquoi ce qui fonctionne sous codeBlock ne fonctionne pas forcément sous visualC++ ?
              Et je cherche à mettre un string dans un char pour pouvoir le retourner ensuite. J'ai trouvé plein de réponse à ma question sur google mais ça fonctionne sous codeBlock mais pas sous visualC++ Auriez-vous une idée du pourquoi ? si oui, me donneriez-vous le comment ? :)
              Merci pour votre aide
              • Partager sur Facebook
              • Partager sur Twitter
              DNTUI
              Anonyme
                8 février 2012 à 17:07:48

                parce que CodeBlocks et VisualC++ n'utilisent pas le même compilateur.

                Qu'est-ce qui ne vas pas sous Visual, c'est quoi les erreurs que te balance le compilo ?
                • Partager sur Facebook
                • Partager sur Twitter
                  8 février 2012 à 17:40:19

                  Par exemple :
                  string test = "Salut", caca;
                      string::reverse_iterator rit;
                      rit = test.rbegin();
                     
                        for ( rit=test.rbegin() ; rit < test.rend(); rit++ ) {
                  
                  
                         caca = caca + *rit;
                  
                        
                        }
                        cout << caca;

                  Sous codeBlock, ce code fonctionne parfaitement (en console), et quand j'ouvre un projet "Windows Forms Application" sous visual.
                  Je met ce code là dans par exemple entre ça :

                          private: System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) {
                  
                                           }

                  et quand je veux compiler, ça me met un tas d'erreur :

                  -1>c:\users\xxx\documents\visual studio 2010\projects\testetencoreuntest\testetencoreuntest\Form1.h(110): error C2653: 'string' : is not a class or namespace name

                  -1>c:\users\xxx\documents\visual studio 2010\projects\testetencoreuntest\testetencoreuntest\Form1.h(110): error C2065: 'reverse_iterator' : undeclared identifier

                  -etc...

                  • Partager sur Facebook
                  • Partager sur Twitter
                  DNTUI
                  Anonyme
                    8 février 2012 à 17:46:39

                    il ne reconnait pas ta classe string:: donc ni son membre reverse_iterator... tu n'as pas besoin d'inclure de fichiers sous C:B? pour utiliser std::string ? ni de déclarer que tu utilise le namespace std pour utiliser string ?

                    Sinon sous Visual, essaie de rajouter std:: devant ton string:: pour préciser de quelle région vient cette classe.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 février 2012 à 18:30:38

                      Non, je n'ai pas besoin d'inclure de fichier sous CB, mais par contre j'ai ajouter "using namespace std;" et ça a réparé quelque erreur.
                      Mais il y a toujours des erreurs alors qu'elles n'y sont pas sous CB :/

                      Il n'y a pas moyen de faire conpiler Visual avec le même compilateur que CB ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                      DNTUI
                        8 février 2012 à 18:45:37

                        Primo, vous faites du Winforms, ce n'est pas du C++ mais du C++/CLI.
                        Le C++ dispose en standard d'une classe de string, celle de la STL, en C++ CLI vous avez celle de la STL, celle d'ATL et celle du Framework .NET.

                        Secondo, que vous en soyez conscient ou non, comme le dit Kaamui, vous avez spécifiés, soit dans votre code, soit dans la configuration de votre outil CB que vous utilisez, la STL dans votre code/projet CB.

                        Vous devez être encore plus rigoureux quand vous faites de C++/CLI.

                        Pour faire du code portable entre compilateur il faut maitriser un minimum de chose dans vos outils et languages<souligne></souligne> comme la déclaration des namespaces.

                        N'utilisez pas les Winforms si vous ne maitriser pas C++/CLI et encore moi si vous ne maîtrisez pas le C++.

                        Sous VisualC++, commencez par des projets de type natif console (Win32).
                        Cela réduira les différences entre les compilateurs car cela sera les le même langage.
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                        Anonyme
                          9 février 2012 à 9:24:29

                          Citation : ledenomejojo

                          Non, je n'ai pas besoin d'inclure de fichier sous CB, mais par contre j'ai ajouter "using namespace std;" et ça a réparé quelque erreur.
                          Mais il y a toujours des erreurs alors qu'elles n'y sont pas sous CB :/

                          Il n'y a pas moyen de faire compiler Visual avec le même compilateur que CB ?



                          Je ne sais pas quelle version de Visual tu utilises, mais à moins que tu sois sous Visual .NET 2003, tu ne trouveras pas un meilleur compilateur (qui respecte autant les normes du C++) que "cl", celui de Visual. Mais comme te le dit bacelar, tu as forcément fait des choses pour que C:B comprenne ton langage^^, et il faut en faire autant avec Visual.


                          Peut-on savoir quel type d'erreur il te reste sous Visual ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            9 février 2012 à 18:07:05

                            Bon je pense que j'ai compris, je vais plutot commencer par prendre de bonne base en C++ sans fenetre (console) x)
                            Et je verais dans un petit moment pour commencer la fenetre.

                            Merci en tout cas pour vos réponses :)
                            Et à bientot. Cordialement
                            Joan
                            • Partager sur Facebook
                            • Partager sur Twitter
                            DNTUI
                              10 février 2012 à 10:33:04

                              On peut aussi faire un programme fenêtré sans faire du C++/CLI mais juste avec du C ou du C++.

                              Mais c'est beaucoup moins productif.
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

                              Convertir int -> string

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown