Passwort programmiere

Schnelle objektorientierte, kompilierende Programmiersprache.
gamma
Beiträge: 33
Registriert: Sa Aug 20, 2016 11:30 am

Passwort programmiere

Beitrag von gamma » Sa Okt 22, 2016 6:29 pm

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

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Passwort programmiere

Beitrag von nufan » Sa Okt 22, 2016 6:33 pm

Vielleicht erklärst du uns mal, wofür in deinem Lösungsansatz jeweils die Variablen verwendet werden sollen.

gamma
Beiträge: 33
Registriert: Sa Aug 20, 2016 11:30 am

Re: Passwort programmiere

Beitrag von gamma » Sa Okt 22, 2016 7:28 pm

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.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Passwort programmiere

Beitrag von nufan » Sa Okt 22, 2016 7:39 pm

"Passwort" ist aber kein int, vielleicht schaust du dir das nochmal genau an.

gamma
Beiträge: 33
Registriert: Sa Aug 20, 2016 11:30 am

Re: Passwort programmiere

Beitrag von gamma » Sa Okt 22, 2016 8:44 pm

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?

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Passwort programmiere

Beitrag von cloidnerux » Sa Okt 22, 2016 8:47 pm

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

Code: Alles auswählen

bool int Passwort;
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!
Redundanz macht wiederholen unnötig.
quod erat expectandum

gamma
Beiträge: 33
Registriert: Sa Aug 20, 2016 11:30 am

Re: Passwort programmiere

Beitrag von gamma » Sa Okt 22, 2016 9:04 pm

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!

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Passwort programmiere

Beitrag von cloidnerux » Sa Okt 22, 2016 9:14 pm

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)
{
    [...]
}
Redundanz macht wiederholen unnötig.
quod erat expectandum

gamma
Beiträge: 33
Registriert: Sa Aug 20, 2016 11:30 am

Re: Passwort programmiere

Beitrag von gamma » Sa Okt 22, 2016 9:43 pm

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?

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Passwort programmiere

Beitrag von cloidnerux » Sa Okt 22, 2016 10:07 pm

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
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten