eine zeile in mehrere strings aufteilen
-
Hi,
ich wollte aus einer datei eine zeile einlesen, in der leerstellen vorkommen.
Und dann wollte ich das in mehrere strings aufteilen.
z.B.:"dashier in variable 1" "dashier in variable 2" usw....
Mfg Yazoo
-
Mit cin.getline() die ganze Zeile einlesen, nach allen Leerzeichen suchen (find)
und die Zeichen bis zum Leerzeichen in einen neuen String subtrahieren.
-
Sry für Doppelposting, aber nicht cin.getline sondern von den strings das getline!
-
oder
boost::tokenize
-
D schrieb:
Mit cin.getline() die ganze Zeile einlesen, nach allen Leerzeichen suchen (find)
und die Zeichen bis zum Leerzeichen in einen neuen String subtrahieren....ich habe es zwar verstanden, weiß aber net wie das geht kannst du mir das auch mal in nem code beispiel zeigen
Mr Evil schrieb:
oder
boost::tokenizewas ist boost::tokenize

-
Hallo,
Also, mit getline hast du eine Zeile eingelesen. Dann kannst du diesen string z.Bsp. einem stringstream zuweisen und da dann deine Einzelstrings rausholen.
string zeile; getline(ein,zeile); //Zeile einlesen stringstream stream(zeile); // Zeile in einen stringstream packen vector<string> str_vect; string tstr; //solange wie noch strings im stream sind auslesen und in einen vector packen while( stream >> tstr ) str_vect.push_back(tstr);Zu boost::tokenize kannst du ja ein wenig googeln. Ich halte das hier für Overkill.
http://boost.org/libs/tokenizer/index.html
-
ich hab das in meinen compiler eingegeben und das kam raus:
#include <iostream> #include <string> #include <vector> using namespace std; int main() { string zeile; getline(ein,zeile); //Zeile einlesen stringstream stream(zeile); // Zeile in einen stringstream packen vector<string> str_vect; string tstr; //solange wie noch strings im stream sind auslesen und in einen vector packen while( stream >> tstr ) str_vect.push_back(tstr); return 0; }"data.cpp": E2451 Undefiniertes Symbol 'ein' in Funktion main() in Zeile 9
"data.cpp": E2285 Keine Übereinstimmung für 'getline<_CharT,_Traits,_Alloc>(undefined,string)' gefunden in Funktion main() in Zeile 9
"data.cpp": E2450 Undefinierte Struktur 'stringstream' in Funktion main() in Zeile 10
"data.cpp": E2034 Konvertierung von 'string' nach 'stringstream' nicht möglich in Funktion main() in Zeile 10
"data.cpp": E2094 'operator>>' ist im Typ 'stringstream' für Argumente des Typs 'string' nicht implementiert in Funktion main() in Zeile 14EDIT: ich habe <vecotr> und <string> und <iostream> included, was habe ich noch falsch gemacht?
-
In der Reihenfolge der Fehlermeldungen:
- die Standardeingabe heißt nicht "ein", sondern "cin"
- Folgefehler aus (1)
- da fehlt der Header <sstream>
- Folgefehler aus (3)
- Folgefehler aus (3)
-
danke hat geklappt