eingabe eines strings mit leerzeichen
-
Hallo ich möchte eine eingabeaufforderung machen mit welcher ich einen string einlese der auch leerzeichen enthält.
wenn ich das mit:
string str; cin>>str;mache dann wird leider beim leerzeichen abgebrochen.
Mein 2. versuch war die eingabe mittels
getline(cin,str);allerdings kann man dabei die backspace-taste, so wie es eigentlich bei der einagbe üblich ist.
hat jemand eine idee wie man das einfach und schnell machen kann??
LG
-
cin bietet doch schon eine getline funktion. versuch es mal mit der.
cin.getline(str, [laenge], [abschlusszeichen]);Fuer laenge gibst du halt die Laenge, der einzulesenden Zeichen an und fuer Abschlusszeichen kannst du ein Zeichen angeben, nachdem der String beendet wird, wie bei dem cin>>str; fall das Leerzeichen.
-
naja mit char * anstatt strings zu hantieren find ich nicht besonders elegant wenn ich ehrlich bin.
LG
-
dann lies es doch mit char* ein und haenge es dann in einen string.
uebrigens, wo wir bei elegant sind... char * ist deutlich schneller als das string objekt, da viel weniger verwaltungsaufwand dahinter steckt. Natuerlich besitzt ein char * keine Methoden, da es ja auch kein Objekt ist, aber elegant ist sicher beides nicht oder halt beides!
-
allerdings kann man dabei die backspace-taste, so wie es eigentlich bei der einagbe üblich ist.
Wo genau soll hier das Problem sein? std::getline() ist imho richtig für deinen Zweck.
MfG SideWinder
-
LMwoot schrieb:
uebrigens, wo wir bei elegant sind... char * ist deutlich schneller als das string objekt, da viel weniger verwaltungsaufwand dahinter steckt. Natuerlich besitzt ein char * keine Methoden, da es ja auch kein Objekt ist, aber elegant ist sicher beides nicht oder halt beides!
char* ist auf jeden Fall deutlich uneleganter als std::string - und wesentlich fehleranfälliger. Also tu Anfängern einen Gefallen und schlage ihnen nicht vor, char* zu verwenden (das ist etwas für C-Programmierer und Profi-C++ler).