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).


Anmelden zum Antworten