stoi, itos usw.



  • Hallo,

    ich versuche unter CodeBlocks (unter Settigs eingestellt Have g++ follwo the C++11 ISO C++ language standard, OS = Windows10) eine Konvertierung von ints zu strings und umgekehrt durchzuführen. Seit Stunden ohne Erfolg. Fehlermeldung

    stoi was not declared in this scope.

    Dieselbe Fehlermeldung, wenn ich es mit anderen Funktionen versuche, z. B. itoa() und atoi(), oder to_string oder iErgebnis.str(). All das findet man im Netz. Nichts funktioniert. Das kann doch nicht wahr sein! 😡 😡 😡

    #include <string>
    #include <iostream>
    #include <cstdlib>
    #include "CCrypt.h"
    using namespace std;
    
    int main()
    {
        int iEingabe=0;
        int iErgebnis=0;
        string strEingabe;
        cout << "Geben Sie eine postive Zahl ein";
        cin >> strEingabe;
        iEingabe = stoi(strEingabe);
        iErgebnis = iEingabe;
        cout << "Das Ergebnis ist" << itos(iErgebnis);
    }
    

    Hat einer einen funktionierende Vorschlag? fehlt was? Andere Compileroption?

    Gruß, CJC


  • Mod

    GCC-Version? Wobei der Compiler schon reichlich alt sein müsste, um stoi nicht zu kennen. itos wird aber kein Compiler kennen, das gibt es einfach nicht.



  • Wie bekomme ich die Compiler Version heraus?
    Welche Alternative gibt es zu dem von mir erfundenen itos()? Irgendwie muß man doch von int nach string konvertieren?

    Gruß, CJC



  • Hast deinen Compiler wahrscheinlich zu streng eingestellt 😕

    Siehe http://www.cplusplus.com/reference/cstdlib/itoa/
    und da: Portability



  • caiusjuliuscaesar schrieb:

    Welche Alternative gibt es zu dem von mir erfundenen itos()? Irgendwie muß man doch von int nach string konvertieren?

    Wie wär's mit std::to_string?

    Ich würde vorschlagen, gleich mit C++17, zumindest aber mindestens mit C++14 anfangen.


  • Mod

    caiusjuliuscaesar schrieb:

    Wie bekomme ich die Compiler Version heraus?
    Welche Alternative gibt es zu dem von mir erfundenen itos()? Irgendwie muß man doch von int nach string konvertieren?

    to_string?



  • caiusjuliuscaesar schrieb:

    Wie bekomme ich die Compiler Version heraus?

    gcc --version
    

    In der Kommandozeile. Dazu musst du allerdings im GCC-bin-directory sein oder das Directory muss in PATH sein. Sollte es allerdings, nebenbeibemerkt auch. Ich weiß aber nicht, ob das CodeBlocks automatisch macht.

    Welche Alternative gibt es zu dem von mir erfundenen itos()? Irgendwie muß man doch von int nach string konvertieren?

    In C wäre das das schon erwähnte itoa. In C++ wird, in neueren Standards das std::to_string verwendet. In <C++11 wird auch hier itoa oder eine selbstgeschriebene Funktion verwendet.


  • Mod

    fliflifliiiiiege schrieb:

    In <C++11 wird auch hier itoa oder eine selbstgeschriebene Funktion verwendet.

    In älterem C++ geht der kanonische Weg eigentlich über stringstream. War aber nicht sonderlich gut, weswegen es ja auch ersetzt wurde.


Log in to reply