Anfängerfrage Zuweisung & if-else



  • hallo

    beschäftige mich seit einigen tagen mit c++ und habe mir hierzu das buch "einführung in die programmierung mit c++" von bjarne stroustrup gekauft

    in kapitel 3.5.1 wird folgender code aufgeführt

    #include "std_lib_facilities.h"
    
    int main()
    {
        string previous = " ";
        string current;
        while (cin >> current) {
            if (previous == current)
            cout << "Wortwiederholung: " << current << " \n";
            previous = current;
        }
    
        return 0;
    }
    

    ich gebe ein wort ein und bestätige mit enter
    dieses wort wird dann als string in current hinterlegt
    mit if else wird dann geprüft ob current == previous
    und ggf der hinweis auf worwiederholung ausgegeben
    soweit habe ich den code wohl verstanden nur was mich stutzig macht ist folgendes:

    ich soll nun "Die Katze Katze sprang" eingeben und gucken was passiert
    ich kriege dabei raus "Wortwiederholung: Katze"

    das versteh ich nich so recht
    ich dachte der komplette text "Die Katze Katze sprang" wird als current hinterlegt und ist != previous

    kann mir bitte jmd kurz erklären wie der letzte teil nun tatsächlich funktioniert?

    danke im vorraus 🙂



  • cin ließt bis zum nächsten Trennzeichen, das ist standardmäßig ein Zeilenumbruch (\n), ein Tabulator (\t), ein paar weitere und das Leerzeichen. Mit cin >> current ließt du also ein einzelnes Wort ein.


  • Mod

    314159265358979 schrieb:

    cin ließt bis zum nächsten Trennzeichen, das ist standardmäßig ein Zeilenumbruch (\n), ein Tabulator (\t), ein paar weitere und das Leerzeichen. Mit cin >> current ließt du also ein einzelnes Wort ein.

    Korrigiere: Der Operator >> liest bis zum nächsten Trennzeichen, das hat mit cin nix zu tun. Ein getline auf cin liefert dir eine ganze Zeile.



  • So wars gemeint, ja. 😉



  • Der Prüfungsweg sieht also so aus?

    prev =
    curr = Die

    Prüfung ok

    prev = Die
    curr = Katze

    Prüfung ok

    prev = Katze
    curr = Katze

    Wortwiederholung

    prev = Katze
    curr = sprang

    Prüfung ok



  • Du hast es erfasst. 😉


Log in to reply