char zeichenkette in integer umwandeln



  • hi, hab ne textdatei da steht ne zahl drin, weiß aber net genau wie lang die zahl ist.
    habe jetz die zahl ausgelesen und hab jetz ne variable char * buffer wo die zahl drin steht.
    Wie krieg ich die ganze zahl jetzt in ne int variable?
    also nehemn wir mal an char * buffer = "1412";
    jetzt könnnt ich zwar variable = buffer[0] - '0';
    aber dann hätte ich ja nur die 1.
    ich will aber dass die variable den kompletten wert hat, also in dem fall 1412.

    hoffe ich hab das problem verständlich beschrieben hab und
    thx im voraus.



  • std::string str("142");
    std::stringstream s(str);
    
    int zahl = 0;
    s >> zahl;
    

    Aber dazu steht auch was in der FAQ 🙄



  • Wie schnell ist das im Vergleich zu atoi()?



  • nachgehackt schrieb:

    Wie schnell ist das im Vergleich zu atoi()?

    Kann man nicht beantworten da es auf die Implementation ankommt.



  • Es ist typsicher, und es wird kaum der Flaschenhals in jemandes Programm sein.

    Troll 🙄



    1. warum einen char buffer an Stelle eines std::strings? letzterer uebernimmt die ganze Speicherwverwaltung fuer dich udn sit damit sicherer.

    2. wenn du die Zahl mit einem der C++-Streams aus der Datei ausliest, kannst du sie direkt in eine Zahl einlesen

    ifstream file(/*...*/);
    int i;
    file >> i;
    
    1. Nimm deinen char-buffer (oder deinen std::string) und benutze stringstreams:
    //char buffer[100];
    std::string buffer;
    //Zahl in buffer lesen
    
    std::istringstream sstr(buffer);
    int i;
    sstr >> i;
    

    Siehe auch den FAQ-beitrag "einmal Zahl und zurueck"

    nachgehackt schrieb:

    Wie schnell ist das im Vergleich zu atoi()?

    Wenn dein Programm nicht nur aus solchen Konstrukten besteht, ist beides so schnell dass es vermutlich keine Rolle spielt.



  • joa thx für die antworten.
    das programm ist nicht für den pc sondern für die PSP (Playstation portable)
    weiß net ob es da geht werd mich mal schlau machen.
    aber wenn string to int leichter ist könnte ich doch erst den char buffer in string umwandeln.
    naya ich meld mich nochmal wenn ich mehr weiß.


Anmelden zum Antworten