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 != previouskann 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.
-
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 = DiePrüfung ok
prev = Die
curr = KatzePrüfung ok
prev = Katze
curr = KatzeWortwiederholung
prev = Katze
curr = sprangPrüfung ok
-
Du hast es erfasst.