Veröffentlicht 10. Dezember 200618 j Hallo Liebe Informatiker Habe wieder eine neue Aufgabe wo ich an einer Stelle nicht weiter komme. Ich habe das Programm geschrieben da muss aber noch was eingefügt werden damit wenn ich Passwort falsch eingebe dort steht das ich noch 2 Versuche habe und wenn ich wieder falsch ein gebe noch 1 Versuch und beim 3. mal wenn ich Falsch eingege das das Programm abgebrochen wird. Dazu brauche ich eure Hilfe. #include <iostream> #include <string> #include <conio.h> using namespace std; void main() { string pw=""; char zeichen; cout <<"\n\n\t Geben Sie Ihr Passwort ein! <max 3 Versuche>"; while(true) { zeichen=getch(); if(zeichen!=13) { pw = pw + zeichen; cout<<"*"; } else break; } if(pw=="Entropie 48") cout<<"\n\n\t Zugang erlaubt!" << endl << endl; else cout <<"\n\n\t Zugang nicht erlaubt!" << endl << endl; }
10. Dezember 200618 j Hallo, dafür brauchst Du noch einen Zähler. Und eine weitere Schleife um deine while Schleife drum herum. Frank
10. Dezember 200618 j :confused: Wie wo man den herbekommt? Frank ja wir haben noch mit zählern nicth gearbeitet. Ich kenn es also nicht
10. Dezember 200618 j bool alles_ok = false; for (int i=1; i<=3;i++) { while(true) { .... } if(pw=="Entropie 48") { cout<<"\n\n\t Zugang erlaubt!" << endl << endl; alles_ok = true; break; } else cout <<"\n\n\t Zugang nicht erlaubt!" << endl << endl; } if (alles_ok ==false) { //Programm beenden } [/code] Frank
10. Dezember 200618 j Hej so klappt es aber wenn ich das Passwort falsch eingebe steht das ich ncith reinkommen kann dann kann ich nochmal passwort eingegen. Ist es möglich wenn ich falsch eingebe das da steht bitte versuchen sie es nochmal? #include <iostream> #include <string> #include <conio.h> using namespace std; void main() { string pw=""; char zeichen; cout <<"\n\n\t Geben Sie Ihr Passwort ein! <max 3 Versuche>"; bool alles_ok = false; for (int i=1; i<=3;i++) { while(true) { zeichen=getch(); if(zeichen!=13) { pw = pw + zeichen; cout<<"*"; } else break; } if(pw=="Entropie 48") { cout<<"\n\n\t Zugang erlaubt!" << endl << endl; alles_ok = true; break; } else cout <<"\n\n\t Zugang nicht erlaubt!" << endl << endl; } if (alles_ok ==false) { //Programm beenden } }
10. Dezember 200618 j Dafür brauchst Du doch nur nach der Zeile cout <<"\n\n\t Zugang nicht erlaubt!" << endl << endl; eine weitere Ausgabe machen. Frank
10. Dezember 200618 j Hi habe es jetzt so gemacht das wenn ich einmal falsch eingebe steht dort dann sie haben noch 2 versuche und wenn ich nochmal falsch eingebe steht dort sie haben noch 2 versuche wieder. Wie kann ich es machen das dort dann steht sie haben noch 1 Versuch? Und wenn ich 3 mal falsch eingebe kommt weder die aufforderung geben sie ihr passwort ein obwohl es nach dem 3.mal ncth kommen soll. Habe ein Bild dazu gemacht #include <iostream> #include <string> #include <conio.h> using namespace std; void main() { string pw=""; char zeichen; cout <<"\n\n\t Geben Sie Ihr Passwort ein! <max 3 Versuche>"; for (int i=1; i<=3;i++) { while(true) { zeichen=getch(); if(zeichen!=13) { pw = pw + zeichen; cout<<"*"; } else break; } if(pw=="Entropie 48") { cout<<"\n\n\t Zugang erlaubt!" << endl << endl; break; } else cout <<"\n\n\t Zugang nicht erlaubt!" << endl << endl; cout <<"\n\n\t Geben Sie Ihr Passwort ein! <noch 2 Versuche>"; }
10. Dezember 200618 j Ungefähr so. string pw=""; char zeichen; cout <<"\n\n\t Geben Sie Ihr Passwort ein! <max 3 Versuche>"; for (int i=3; i>=1;i++) { while(true) { zeichen=getch(); if(zeichen!=13) { pw = pw + zeichen; cout<<"*"; } else break; } if(pw=="Entropie 48") { cout<<"\n\n\t Zugang erlaubt!" << endl << endl; break; } else { cout <<"\n\n\t Zugang nicht erlaubt!" << endl << endl; cout <<"\n\n\t Geben Sie Ihr Passwort ein! <noch << i << Versuche>"; } } [/code] Frank
10. Dezember 200618 j das geht leider net. wenn ich es so mache wie du kann ich es so oft eingeben wie ich es will
10. Dezember 200618 j und hier ist auch ein fehler drinne cout <<"\n\n\t Geben Sie Ihr Passwort ein! <noch << i << Versuche>"; Und Ich habe eben vom freund erfahren das ich es mit Benutzername machen sollte. Benutzername ist Chef wie kann ich das einbinden?
10. Dezember 200618 j und hier ist auch ein fehler drinne cout <<"\n\n\t Geben Sie Ihr Passwort ein! <noch << i << Versuche>";Ja, da fehlen ein paar Anführungszeichen. Und Ich habe eben vom freund erfahren das ich es mit Benutzername machen sollte. Benutzername ist Chef wie kann ich das einbinden?Genauso wie das Passwort, mit einem weiteren String. Willst du dir alles vorsagen lassen?
10. Dezember 200618 j Ja, da fehlen ein paar Anführungszeichen. Genauso wie das Passwort, mit einem weiteren String. Willst du dir alles vorsagen lassen? Wo genau fehlen die Anführungszeichen? Und habe es mit 2. string versucht klappt aber net mache irgendwie fehler. Hmmm Muss noch gewaltig dran arbeiten. Und nicht denken das ich es jahrelang mache. mache es erst seit 4 monaten
10. Dezember 200618 j Wo genau fehlen die Anführungszeichen? Und habe es mit 2. string versucht klappt aber net mache irgendwie fehler. Hmmm"mache irgendwie fehler" ist keine ausreichende Fehlerbeschreibung. Zeig, was du gemacht hast, erklär, was du dir dabei gedacht hast (wichtig!) und zitiere genau, was der Compiler daran auszusetzen hatte. Muss noch gewaltig dran arbeiten. Und nicht denken das ich es jahrelang mache. mache es erst seit 4 monatenIch habe irgendwie das Gefühl, dass du den Code nicht wirklich verstehst. Liege ich da richtig? Falls ja, bringt es dir praktisch nichts, wenn wir dir fertigen Code vorsetzen, der Lerneffekt geht da gegen Null.
10. Dezember 200618 j doch ich verstehe es schon;) Also zum Fehler. Habe es so gemacht #include <iostream> #include <string> #include <conio.h> using namespace std; void main() { string bn=""; string pw=""; char zeichen; cout <<"\n\n\t Geben Sie Ihren Benutzernamen ein!"; cout <<"\n\n\t Geben Sie Ihr Passwort ein! <max 3 Versuche>"; for (int i=3; i>=1;i--) { while(true) { zeichen=getch(); if(zeichen!=13) { pw = pw + zeichen; cout<<"*"; } else break; } if(pw=="Entropie 48" & bn=="Chef") { cout<<"\n\n\t Zugang erlaubt!" << endl << endl; break; } else cout <<"\n\n\t Zugang nicht erlaubt! Passwort Falsch" << endl << endl; cout <<"\n\n\t Geben Sie Ihr Passwort erneut ein!"; } So läuft das Programm aber ich kann oben nur passwort eingeben und auch wenn ich es richtig eingebe sthet das ich es falsch eingegeben habe
10. Dezember 200618 j Du fragst ja auch nur einmal. if(pw=="Entropie 48" & bn=="Chef") [/code] Da fehlt noch ein & und bei deinem jetzigen Code kann nur falsch raus kommen. Frank
10. Dezember 200618 j danke hatte es schon so versucht aber ich brauch auch benutzernamen abfrage muss es also irgendwie eingeben könne. mit dem code da oben geht es net
10. Dezember 200618 j So Habs jetzt einigeßen hinbekommen //Passwortabfrage //(C) by M.Cakir #include <iostream> #include <string> #include <conio.h> using namespace std; void main() { string bn=""; string pw=""; char zeichen; cout <<"\n\n\t Geben Sie Ihren Benutzernamen ein!"; while(true) { zeichen=getch(); if(zeichen!=13) { bn = bn + zeichen; cout<<"*"; } else break; } if(bn=="Chef") { cout<<"\n\n\t Ihr Benutzername ist richtig!" << endl << endl; } else cout <<"\n\n\t Zugang nicht erlaubt! Benutzername Falsch" << endl << endl; cout <<"\n\n\t Geben Sie Ihr Passwort ein! <max 3 Versuche>"; for (int i=3; i>=1;i--) { while(true) { zeichen=getch(); if(zeichen!=13) { pw = pw + zeichen; cout<<"*"; } else break; } if(pw=="Entropie 48" && bn=="Chef") { cout<<"\n\n\t Zugang erlaubt!" << endl << endl; break; } else cout <<"\n\n\t Zugang nicht erlaubt! Passwort Falsch" << endl << endl; cout <<"\n\n\t Geben Sie Ihr Passwort erneut ein!"; } } Aber Leider wenn ich Benutzername richtig eingebe und Passwort falsch steht dort da sich das PW neu eingeben soll und wenn ich es dann richtig eingebe steht da trotzdem das es falsch ist
10. Dezember 200618 j Bring doch mal deine Einrückung in Ordnung, denn die ist offen gesagt gräßlich. Ich kann da kaum erkennen, was wohin gehört. Das Problem ist übrigens, dass in pw noch das alte, falsche Passwort drinsteht. Das solltest du vor dem zweiten Versuch schon löschen.
10. Dezember 200618 j So oder was? //Passwortabfrage //(C) by M.Cakir #include <iostream> #include <string> #include <conio.h> using namespace std; void main() { string bn=""; string pw=""; char zeichen; cout <<"\n\n\t Geben Sie Ihren Benutzernamen ein!"; while(true) { zeichen=getch(); if(zeichen!=13) { bn = bn + zeichen; cout<<"*"; } else break; } if(bn=="Chef") { cout<<"\n\n\t Ihr Benutzername ist richtig!" << endl << endl; } else cout <<"\n\n\t Zugang nicht erlaubt! Benutzername Falsch" << endl << endl; cout <<"\n\n\t Geben Sie Ihr Passwort ein! <max 3 Versuche>"; for (int i=3; i>=1;i--) { while(true) { zeichen=getch(); if(zeichen!=13) { pw = pw + zeichen; cout<<"*"; } else break; } if(pw=="Entropie 48") { cout<<"\n\n\t Zugang erlaubt!" << endl << endl; break; } else cout <<"\n\n\t Zugang nicht erlaubt! Passwort Falsch" << endl << endl; cout <<"\n\n\t Geben Sie Ihr Passwort erneut ein!"; } }
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.