int wert aus string auslesen
-
Hi,
also: ich lese eine Zeile aus einer datei ein, zbsp.: "wert der zeile: 23"
wie kriege ich jetzt diese zahl 23 aus der zeile raus???Danke, Danke!
mfg hares
-
string t("wert der zeile: 23"); string::size_type pos; // Zum speichern der gefundenen Position pos = t.find_last_of(":"); // Letzten : suchen if(pos == string::npos) // Prüfen ob es einen gab NichtGefunden string zahl; zahl = t.substr(pos+1); // Zahl extrahieren ( 1 position hinter dem :) int i = atoi(zahl);
-
Hallo,
prinzipiell ok, aber unnötig langsam und nicht vergessen: atoi erwartet einen const char* nicht einen std::string:string Zeile("wert der zeile: 23"); string::size_type pos = Zeile.find(":"); if (pos != string::npos) { int i = atoi(Zeile.c_str()+pos+1); }
Wenn das Format der Zeile nicht ganz so klar ist, hilft eine Suche nach Ziffern:
const char* const DIGITS = "0123456789"; string Zeile("wert der zeile: 23"); string::size_type pos = Zeile.find_first_of(DIGITS); if (pos != string::npos) { int i = atoi(Zeile.c_str()+pos); }
-
wobei der text vorne dran meist auch noch interessant ist
-
wie kriege ich jetzt diese zahl 23 aus der zeile raus???
wobei der text vorne dran meist auch noch interessant ist
-
stringstream str(string("wert der zeile: 23")); string text; int zahl; while(!str.eof()) { char c = str.get(); if(isdigit(c)) { str.putback(c); str >> zahl; } else { text+=c; } }
oder so
-
while(!str.eof())
Nein. Auch nicht bei stringstreams.
So:while(str.get(c)) { ... }