while-Schleife terminiert nicht.
-
Wutz schrieb:
Für das Separieren eines durch Whitespaces getrennten Teilstrings aus einem String nimmt man sscanf und einen Einzeiler wie
if( 1==sscanf(" blafasel\t\n","%49s",chararray50) ) puts(chararray50); else puts("EOF oder Lesefehler");Und der Ausgangsstring darf sogar const sein, bzw. implizit const als Stringliteral.
Sind wir im C-Forum? Geh bloss weg mit diesem Dreck...

std::string hw = "Hallo Welt!", erstesWort; std::istringstream(hw) >> erstesWort;Oder dein Beispiel (wenn ich es verstanden habe):
std::string hw = " blafasel\t\n", erstesWort; std::istringstream(hw) >> std::ws >> erstesWort;@Eisflamme: Obiges ist einfacher und braucht kein boost :p
Sorry fuer die ganzen edits.
-
Sone schrieb:
Sind wir im C-Forum? Geh bloss weg mit diesem Dreck...

armes deutschland ...

-
b.b. schrieb:
Sone schrieb:
Sind wir im C-Forum? Geh bloss weg mit diesem Dreck...

armes deutschland ...

Nicht annaehrend so arm wie dein Post an Argumentation und Sinn.
-
Für ein Element ist das sicher am Besten so.
Für mehrere packt split das aber alles schon brav in einen vector. Gut, ein kleines while und push_back darauf hin geht wohl auch.Diese Variante von Dir geht aber erst mit C++11 so kurz, richtig?
-
Eisflamme schrieb:
Für ein Element ist das sicher am Besten so.
Für mehrere packt split das aber alles schon brav in einen vector. Gut, ein kleines while und push_back darauf hin geht wohl auch.O ja:
std::vector<std::string> strings; std::istringstream stream(" das ist die geschischte\t von\nbla"); while( stream ) { strings.push_back( std::string() ); stream >> std::ws >> strings.back(); }Diese Variante von Dir geht aber erst mit C++11 so kurz, richtig?
Nope.

-
Sone schrieb:
Eisflamme schrieb:
Diese Variante von Dir geht aber erst mit C++11 so kurz, richtig?
Nope.

Doch. Er meinte:
std::string hw = "Hallo Welt!", erstesWort; std::istringstream(hw) >> erstesWort; // Error: no match for 'operator>>' in 'std::basic_istringstream<char>((*(const __string_type*)(& hw)), (std::_Ios_Openmode)8u) >> erstesWortUnd das hatte ich bereits ganz oben geschrieben.
-
[latex]
Gugelmoser schrieb:
Sone schrieb:
Eisflamme schrieb:
Diese Variante von Dir geht aber erst mit C++11 so kurz, richtig?
Nope.

Doch. Er meinte:
std::string hw = "Hallo Welt!", erstesWort; std::istringstream(hw) >> erstesWort; // Error: no match for 'operator>>' in 'std::basic_istringstream<char>((*(const __string_type*)(& hw)), (std::_Ios_Openmode)8u) >> erstesWortUnd das hatte ich bereits ganz oben geschrieben.
Ah shit, jetzt sehe ich es auch. Klar, hast Recht.
Dachte, ging schon immer mit rtemporaeren Objekten.
-
Sone schrieb:
Ah shit, jetzt sehe ich es auch. Klar, hast Recht.
Dachte, ging schon immer mit rtemporaeren Objekten.Nö, weil ein temporäres Objekt nicht an eine
non-const lvalue referencegebunden werden darf.
-
Zeit für Sone sich mal wieder umzubennenen...
-
EOP schrieb:
Zeit für Sone sich mal wieder umzubennenen...
hehehe

ich hätte auch schon eine idee, andererseits möchte ich auch nicht beleidigend werden.