Login

lz9c1j

Mitglied
hallo zusammen
wie schon früher gesagt, bin ich neueinsteiger. habe meinen taschenrechner fertig und möchte jetzt einen login machen. wenn beim passwort bravo steht, erscheint eine meldung.

#include <stdio.h>
void main()

{

char loginname;
char loginpasswort;


printf("Bitte geben Sie Ihren Loginnamen ein: ");
scanf("%c", &loginname);
fflush(stdin);

printf("Bitte geben Sie das Passwort ein: ");
scanf("%c", &loginpasswort);
fflush(stdin);


if (loginpasswort==bravo)
{
printf("Bravo");
}


getchar();

}

wieso geht das bei mir nicht. und dann noch eine frage. wenn ich für dieses problem die lösung habe, mache ich noch einen counter. das heisst wenn das passwort 3 mal falsch ist erscheint eine meldung. if (loginpasswort==bravo and counter < 3) oder wie geht das?
und dann einfach
if (fadsfasdfdasfsdf)
{
sdfdasfdasf
}
else
{
sadfasdf}
 
Code:
 char loginname;
char loginpasswort;
Und mit char-Arrays anstelle von einzelnen Chars. Den Vergleich kannst du dann mit strcmp() machen anstelle von ==, was nur die Pointer auf den ersten char vergleichen würde.
 
Hallo,

Code:
 char loginname;
char loginpasswort;

in loginname und loginpasswort können genau jeweils ein Zeichen gespeichert werden.
So geht das nicht.. Besser:

Code:
 char loginname[20];
char loginpasswort[20];

Jetzt sind die beiden vars loginname und loginpasswort 2 Felder der Größe 20 =>
du kannst jetzt 20 Zeichen in je einem der beiden Speichern.
Jetzt kannst du mittels loginname[0] ... loginname[19] auf die einzelenen Elemenete zugreifen.
Desweiteren greift man wie schon erwähnt mittels des [] Operators auf den Inhallt eines
solchen Feldes zu, wobei loginname und loginpasswort jetzt nun mehr Bezeichner für die
Anfangsaddresse des jeweiligen Feldes sind =>

Code:
 if (loginpasswort=="bravo")

Somit verglöeichst du nicht mehr auf die Inhaktliche Gleichheit sondern auf die Gleichheit
2er Addressen im Speicher.

Schau dir mal die Funktion strcmp an...

Gruß

RedWing

//edit sollte lernen mich kürzer zu fassen :) da war wohl jemand schneller...
 
also danke erstmals für die schnellen antworten. ich habe den code geändert. ein einziges problem gibt es noch. es kommt immer die Meldung falsches Passwort :(

#include <stdio.h>
void main()

{

char loginname[30];
char loginpasswort[6];


printf("Bitte geben Sie Ihren Loginnamen ein: ");
scanf("%s", loginname);
fflush(stdin);

printf("Bitte geben Sie das Passwort ein: ");
scanf("%s", loginpasswort);
fflush(stdin);


if (loginpasswort=="bravo")
{
printf("Bravo");
}
else
{
printf("Falsches Passwort");
}



getchar();

}
 
Code:
 if (loginpasswort=="bravo")
Hier stattdessen strcmp() verwenden!
Code:
 if ( strcmp( loginpasswort,"bravo") == 0) // so etwa -- ohne gewähr
 
danke vielmal. es ishc äntli gange. aber das ichs au kapier. für was ==0. sorry falls ich stresse, sind ein bisschen fragen :)

ups: sorry bin eben aus Zürich. Es hat endlich funktioniert. Aber das ich das mit ==0 auch kapiere. Für was ist das? Sorry falls ich störe, sind ein bisschen fragen :)
 
Zurück