Passwortabfrage über String - do while Schleife funktioniert nicht
-
silent_max schrieb:
f.-th. schrieb:
Warum weigerst du dich den Kommentar im Quelltext zu verstehen
Sie meinen Taschenrechner über Pointer...
Da habe ich am Anfang auch nur
int number;
deklariert und bei derdo...while
Schleife als Bedingung [c]while(number!=0) gesetzt. Nichts gegen Dich, f.-th., aber warum soll ich es denn bei dem Code für das Passwort anders machen??Du Veränderst die Variable in deinem Dreckcode für die Passwort-Abfrage nicht innerhalb der Schleife. Deshalb wird die Schleife einmal oder unendlich oft ausgeführt, je nach Anfangsbelegung.
Ich muss sone langsam zustimmen -> Geistige Behinderung oder Lernschwäche.
-
silent_max schrieb:
/*...*/ int main() { int number; do { /*...*/ cin >> number; /*...*/ }while(number!=0); /*...*/ }
... Teil der Bedingung (
number
) im Schleifenkörper veränderlich.silent_max schrieb:
/*...*/ int main() { /*...*/ char e='ß'; /*...*/ do { /*...*/ }while(e!='ß'); /*...*/ }
... Teil der Bedingung (
e
) im Schleifenkörper nicht veränderlich.
-
Ok
Swordfish schrieb:
... Teil der Bedingung (
e
) im Schleifenkörper nicht veränderlich.Jetzt habe ich es kapiert... also muss die Variable, die ich als Bedingung setze, veränderbar sein.
Hier jetzt der Programmcode, der funktioniert:
#include <iostream> #include <string> using namespace std; int main() { string e; e = "1306*Vatertag"; cout << "\n"; cout << "\tPasswortabfrage!\n"; cout << "\n"; do { cout << "Wie lautet das Passwort?\n"; cin >> e; if(e=="1306*Vatertag") cout << "Richtig eingegeben"; else cout << "Nicht richtig eingegeben!\n"; }while(e!="1306*Vatertag"); return 0; }
Edit:
Wer ist eigentlich noch der Meinung, dass ich nur Scheiße produziere??????
-
silent_max schrieb:
Wer ist eigentlich noch der Meinung, dass ich nur Scheiße produziere??????
Frag lieber mal, wer nicht dieser Meinung ist.
-
[quote="DieWahrheit"]
silent_max schrieb:
Frag lieber mal, wer nicht dieser Meinung ist.
Also, wer ist nicht der Meinung, dass ich nur Scheiße produziere??
-
silent_max schrieb:
Edit:
Wer ist eigentlich noch der Meinung, dass ich nur Scheiße produziere??????
Ich
-
silent_max schrieb:
Wer ist eigentlich noch der Meinung, dass ich nur Scheiße produziere??????
Man sieht Deinem Code einfach an, dass Du sogar die einfachsten Sprachmittel nicht verstanden hast und so gut wie nichts über den Programmablauf weißt.
Ein Beispiel, erkläre mal bitte diese Zeilen:
string e; e = "1306*Vatertag";
Warum exakt belegst Du e mit diesem Wert an dieser Stelle?
-
GanzEinfach... schrieb:
Ein Beispiel, erkläre mal bitte diese Zeilen:
string e; e = "1306*Vatertag";
Warum exakt belegst Du e mit diesem Wert an dieser Stelle?
string e
: e soll vom Typ String sein
e="1306*Vatertag
: In der Stringvariablen e soll das Wort 1306*Vatertag stehenWobei man auch
string e = "1306*Vatertag
schreiben hätte können.Oder liege ich falsch????????????
-
Damit beschreibst du was du machst, nicht warum du es machst.
(Dieses Missverständnis ist eins deiner Probleme)Warum also machst du das?
Warum weist du an dieser Stelle der Variablen e diesen bestimmten Wert zu?
-
DirkB schrieb:
Warum weist du an dieser Stelle der Variablen e diesen bestimmten Wert zu?
Weil man der Stringvariablen
e
"nur" einen Text übergeben kann
-
silent_max schrieb:
Weil man der Stringvariablen
e
"nur" einen Text übergeben kannDu weichst aus.
Die Frage war, warum du überhaupt dieses "Wort" dem String zuweist... Wieso tust du das?
<:xmas2:>
-
silent_max schrieb:
Hier einmal der Code, den ich geschrieben habe:
#include <iostream> #include <string> using namespace std; int main() { string Passwort; Passwort = "1306*Vatertag"; int number; cout << "\n"; cout << "\tPasswortabfrage!\n"; cout << "\n"; cout << "Wie lautet das Passwort?\n"; cin >> Passwort; do { if(Passwort=="1306*Vatertag") cout << "Richtige eingegeben"; else cout << "Nicht richtig eingegeben!\n"; }while(number!=0); return 0; }
Wenn ich jedoch
number
mit 0 initialisier, dann läuft diedo ... while
Schleife nur einmal durch.Wo ist mein Denkfehler?
Ich gehe noch einmal konkret auf Deine Frage ein:
... }while(number!=0); ...
Bedeutet: Solange number ungleich 0 ist. Da Du number mit 0 initialisiert hast, ist number nicht ungleich 0, deshalb wird die Schleife sofort beendet.
-
Angeklagter, warum haben Sie das Opfer erstochen?
Ich bin hingegeangen und habe ihm das Messer in ihn reingesteckt.
(So war deine erste Antwort)Das wissen wir, aber warum haben sie das gemacht?
Weil man mit einem Messer nicht schiessen kann.
(So war deine zweite antwort)Das hohe Gericht möchte aber dein Motiv wissen.
(Notwehr, Eifersucht, Raubmord)
-
glühnase schrieb:
silent_max schrieb:
Weil man der Stringvariablen
e
"nur" einen Text übergeben kannDu weichst aus.
Die Frage war, warum du überhaupt dieses "Wort" dem String zuweist... Wieso tust du das?
<:xmas2:>
Meint ihr, warum ich das persönlich mache oder warum man das allgemein so macht oder auf was wollt ihr hinaus?
-
DirkB schrieb:
Das hohe Gericht möchte aber dein Motiv wissen.
(Notwehr, Eifersucht, Raubmord)Weil ich es eben einfach so getan habe...
-
Warum machst Du das in diesem Fall?
Deutlicher:
Warum weist Du e überhaupt irgendetwas zu?
Warum tust Du es an dieser Stelle?
Warum weist Du e genau diesen Inhalt zu?
-
silent_max schrieb:
Meint ihr, warum ich das persönlich mache oder warum man das allgemein so macht oder auf was wollt ihr hinaus?
Wir würden hier nicht so fragen, wenn das wirklich alle so machen.
Wobei es hier speziell um diesen Fall geht.
Es geht nicht darum, dass man i.A. Variablen initialisiert.
Warum hast du in diesem Fall, dieser Variablen diesen Wert zugewiesen?
-
silent_max schrieb:
DirkB schrieb:
Das hohe Gericht möchte aber dein Motiv wissen.
(Notwehr, Eifersucht, Raubmord)Weil ich es eben einfach so getan habe...
Okay, jetzt haben wir es glaube ich alle verstanden ...
-
silent_max schrieb:
Meint ihr, warum ich das persönlich mache oder warum man das allgemein so macht oder auf was wollt ihr hinaus?
Allgemein macht man das nicht. Die Frage zielt darauf ab, ob du verstehst, was du machst.
Wenn du das tust, solltest du in der Lage sein, ihn zu erklären. Erkläre daher mal, welchen Sinn die Zuweisung
Passwort = "1306*Vatertag";
in deinem ganzen Programm hat.<:xmas2:>
-
silent_max schrieb:
DirkB schrieb:
Das hohe Gericht möchte aber dein Motiv wissen.
(Notwehr, Eifersucht, Raubmord)Weil ich es eben einfach so getan habe...
Das demonstriert sehr gut den Kern deines Problems. Aber antworte mal auf glühnase.