string STL blanks entfernen bei getline



  • hi,
    folgende frage:
    wie kriege ich die blanks weg wenn ich mit getline aus einem ifstream in einen string lese ??

    vielen dank.



  • Hi,

    das kannst du mittels der basic_istream-Memberfunktion ignore machen.

    Hier der Auszug aus der Hilfe:

    istream_type&
    ignore(streamsize n=1, int_type delim=traits::eof());

    Extracts characters and discards them. Characters are extracted until any of the following occurs:

    n characters are extracted
    An end-of-file on the input sequence
    The next available input character == delim.

    mfg
    v R



  • danke fuer den post. aber gibt es keine bessere methode die blanks aus nem string zu entfernen? die ignore methode brauch anzahl der max. einzulesenden bytes + trennzeichen, damit weiss ich nix anzufangen (jedenfalls nicht fuer mein problem)... ich brauche ne methode wie ich am besten die blanks aus nem STL-string wegkriege ausser indem ich das ganze string durchrase und alle blank-vorkommen erase !?!?!?!?

    also nochmal bitte.

    danke.



  • Hallo,
    wenn du keine Leerzeichen im String haben willst, warum liest du dann mit getline? Lies doch einfach mit dem operator>>

    string ergebnis;
    for (string wort; cin >> wort ;)
        ergebnis += wort;
    

    Ansonsten tut's auch ein Einzeiler, der das Ergebnis des Algorithmus std::remove mit der Methode string::erase kombiniert:

    ergebnis.erase(remove(ergebnis.begin(), ergebnis.end(), ' '), ergebnis.end());
    


  • danke fuer den post, der einzeiler funzt prima (die erste variante kann ich leider nicht gebrauchen)

    danke.
    🙂


Anmelden zum Antworten