Seite 1 von 2
Passwort programmiere
Verfasst: Sa Okt 22, 2016 6:29 pm
von gamma
Hallo...
Ich lerne gerade programmieren in C++ und komme im Moment gerade irgendwie nicht weiter. Ich wollte ein Programm schreiben, dass wenn ich ein korrektes Passwort eingebe, die Konsole "Willkommen" ausgibt und wenn ich eine andere Zahlenkombination eingebe soll "Falsche Passwort" ausgegeben werden.
Bis jetzt habe ich folgendes gemacht:
Code: Alles auswählen
#include<iostream>
using namespace std;
int main()
{
bool Passwort = true;
int a =1234;
Passwort = a;
int passwortfalsch;
cout<<"Geben sie ihr Passwort ein:">>endl;
cin>> passwortfalsch;
if (passwortfalsch != Passwort)
{
cout<<"Falsches Passwort"<<endl;
} else {
cout<<"Willkommen"<<endl;
}
return 0;
}
Ich bekomme allerdings eine recht lange Fehlermeldung zurück unter anderem :no match for 'operator>>
Kann mir jemand helfen und erklären wo mein Fehler liegt? Würde mir sehr helfen!
EDIT nufan: Code-Tags
Re: Passwort programmiere
Verfasst: Sa Okt 22, 2016 6:33 pm
von nufan
Vielleicht erklärst du uns mal, wofür in deinem Lösungsansatz jeweils die Variablen verwendet werden sollen.
Re: Passwort programmiere
Verfasst: Sa Okt 22, 2016 7:28 pm
von gamma
Ok. Also ich habe mir gedacht die Variable Passwort soll den Wert 1234 zugeschrieben bekommen. Zu diesem zweck habe ich einen int angelegt, den ich a genannt habe und den Wert 1234 zugewiesen habe. Die int Variable passwortfalsch sollte den Wert haben, der später in die Konsole eingegeben werden kann.
Re: Passwort programmiere
Verfasst: Sa Okt 22, 2016 7:39 pm
von nufan
"Passwort" ist aber kein int, vielleicht schaust du dir das nochmal genau an.
Re: Passwort programmiere
Verfasst: Sa Okt 22, 2016 8:44 pm
von gamma
Reicht es nicht das a ein int ist? Meinst du also ich soll bool int Passwort schreiben? Oder vorher int Passwort = 1234 und dafür a ganz weglassen?
Re: Passwort programmiere
Verfasst: Sa Okt 22, 2016 8:47 pm
von cloidnerux
Reicht es nicht das a ein int ist?
Dein Compiler ist in der Hinsicht sehr einfältig! Er macht genau das, was du programmierst, nicht das, was du vorhast.
Meinst du also ich soll bool int Passwort schreiben?
Bool ist ein Datentyp, int ist ein Datentyp.
Eine Notation der Form
hätte damit keinen Eindeutigen Datentypen mehr. Diese Notation macht keinen Sinn.
Überlege doch noch einmal, was du vor hast und was du dafür tatsächlich benötigst!
Re: Passwort programmiere
Verfasst: Sa Okt 22, 2016 9:04 pm
von gamma
Hmm meine Idee war das ich ein fixes Passwort festlege und und dann einfach abfrage ob die eingegebene Kombination wahr (also gleich dem festgelegtem Passwort) oder falsch ist.
Hmm und wenn ich die Reihenfolge vertausche, also erst definiere ich a, dann sage ich Passwort = a und dann benutze ich erst bool? Würde das etwas ändern?
Oder was mir dazu noch einfallen würde ist das ich mit pointern arbeite.
Danke auf alle Fälle für die Hilfe!
Re: Passwort programmiere
Verfasst: Sa Okt 22, 2016 9:14 pm
von cloidnerux
Hmm und wenn ich die Reihenfolge vertausche, also erst definiere ich a, dann sage ich Passwort = a und dann benutze ich erst bool?
Du brauchst im Endeffekt kein bool, wo auch das Problem deiner Verwirrung liegt.
Ein Ausdruck mit einem Verlgleichsoperator (== != > < => <=) wird immer als bool evaluiert.
In deinem Fall ist es dementsprechend sehr einfach:
Code: Alles auswählen
int passwort = 1234;
int eingabe;
cin >> eingabe;
if(eingabe == passwort)
{
[...]
}
Re: Passwort programmiere
Verfasst: Sa Okt 22, 2016 9:43 pm
von gamma
Hm das Klingt recht logisch was du sagst, trotzdem funktioniert es noch nicht ganz
Code: Alles auswählen
#include<iostream>
using namespace std;
int main()
{
int Passwort = 1234;
int passwortfalsch;
cout<<"Geben sie ihr Passwort ein:">>endl;
cin>> passwortfalsch;
if (passwortfalsch != Passwort)
{
cout<<"Falsches Passwort"<<endl;
} else {
cout<<"Willkommen"<<endl;
}
return 0;
}
Kannst du mir nur noch sagen wo der Fehler liegt?
Re: Passwort programmiere
Verfasst: Sa Okt 22, 2016 10:07 pm
von cloidnerux
Hm das Klingt recht logisch was du sagst, trotzdem funktioniert es noch nicht ganz
Mir fehlt leider die Glaskugel, um dir zu sagen wo dein Problem liegt. Daher solltest du bitte immer angeben, was denn nicht Funktioniert, oder wie es sich äußert.
Ich habe dein Beispiel compiliert und weis daher was falsch ist. Das sagt dir aber auch der Compiler:
Code: Alles auswählen
main.cpp:9:38: note: 'std::basic_ostream<char>' is not derived from 'std::basic_istream<char, _Traits>'
cout<<"Geben sie ihr Passwort ein:">>endl;
^
Du hast ein >> statt eines << verwendet.
Wenn man es dann richtig hat, kommt auch das Richtige heraus:
Code: Alles auswählen
C:\Users\Jack\Downloads\test>test
Geben sie ihr Passwort ein:
1235
Falsches Passwort
C:\Users\Jack\Downloads\test>test
Geben sie ihr Passwort ein:
1234
Willkommen