int in string umwandeln - Problem und Lösung



  • Hallo,
    ich bin C++ Anfänger.
    Ich versuche mich im Programmieren und hatte zuletzt Probleme int-Werte als string auszugeben.
    Nach Suche in Google habe ich ein paar Lösungen gefunden wie http://www.cplusplus.com/reference/string/to_string/.
    Leider funktioniert das bei mir nicht. -> Ubuntu -> Programm Geany, Qt
    Vielleicht sind meine Bibliotheken falsch eingestellt.

    Ich habe jetzt erstmal eine eigene Funktion geschrieben, die für mich das Problem löst. Vielleicht kann mir jemand sagen, wie ich die Datei speichern muss damit ich sie als Precompiler-Befehl in meine nächsten Programm einbinden kann.

    Kann mir ansonsten jemand sagen ob das erstmal eine gute Lösung ist?

    #include <iostream>
    #include <string>
    using namespace std;
    
    char itoc(int);
    string itos(int);
    
    int main(){
      int i=312354;
      string s=itos(i);
      cout<<s;
      return 0;
    }
    
    char itoc(int i){   //Konvertiere einzelne Ziffer in char
     char c;
     if(i==1){c='1';}
     else if(i==2){c='2';}
     else if(i==3){c='3';}
     else if(i==4){c='4';}
     else if(i==5){c='5';}
     else if(i==6){c='6';}
     else if(i==7){c='7';}
     else if(i==8){c='8';}
     else if(i==9){c='9';}
     else if(i==0){c='0';}
     return c;
    }
    
    string itos(int i){  //Konvertiere int in string
     string s;
     char c;
     while(i>9){
      int r=i%10;
      int t=i/10;
      i=t;
      c=itoc(r);
      s=c+s;
     }
     if(i<10&&i!=0){
      c=itoc(i);
      s=c+s;
     }
     return s;
    }
    


  • sigmar87 schrieb:

    Leider funktioniert das bei mir nicht. -> Ubuntu -> Programm Geany, Qt

    Eine sehr aussagekräftige Beschreibung.

    Vermutlich liefert der Compiler eine Fehlermeldung. Lösung: richtige Standardversion auswählen. Mit g++ --std=c++11 ... sollte es gehen. Ich würde aber g++ --std=c++1z ... probieren (das wäre der sich aktuell in Entwicklung befindende Standard) oder zumindest g++ --std=c++14 ... (das wäre der aktuelle Standard).



  • In einer qmake einfach

    CONFIG += c++11
    

    hinzufügen.



  • sigmar87 schrieb:

    und hatte zuletzt Probleme int-Werte als string auszugeben.

    hast Du schon das versucht?

    #include <iostream>
    using namespace std;
    
    int main(){
      int i=312354;
      cout<<i;
      return 0;
    }
    

    Umwandeln in einen String ginge so:

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main(){
      int i=312354;
      string s = to_string(i);
      return 0;
    }
    


  • Bin selbst Anfänger und hab mir so geholfen:

    Stringstream initialisieren
    Mit dem Operator << deinen INT einfließen lassen
    Anschließend in einem String umwandeln mit .str()

    Google mal stringstream

    Der Code ist wirklich klein und easy.


Anmelden zum Antworten