PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe! Wieso geht das nicht?


Siegfried86
2003-09-29, 21:54:01
joa ich versuche schon seit ner woche ein programm zu schreiben in dem nen passwort abgefragt wird
das ganze klappt aber nie
entweder lässt es sich garnicht erst kompilieren
oder es springt nicht mehr in die "richtige" if schleife wenn das passwort mehr als ein zeichen ist

hier mal nen beispielcode
#include <iostream>

using namespace std;

char pwd;

int main()
{

cout << "Bitte das Passwort eingeben. \n";
cin >> pwd;

cout << "Ihre Eingabe: " << pwd << "\n";

if (pwd=='lalala')
{
cout << "Richtig. \n";
}

else
{
cout << "Falsch. \n";
}

return 0;
}

wieso geht das nicht?
und wie schreibt man das ganze so damit es auch richtig funktioniert?
habe schon allerhand mit strings und wchar_t probiert aber wenn in der if schleife mehr als ein zeichen verlangt wird springt es nimmer rein

Dr.Doom
2003-09-29, 22:07:12
Schonmal einen String anstelle eines einzelnen Characters probiert? ;)

char* pwd;


Und für die "IF-Schleife" musst du 50Cent in die Kaffeekasse zahlen. :D

Ganon
2003-09-29, 22:11:31
Hi,

ich weiß es jetzt nicht genau aber:

- "char pwd" bedeutet pwd kann ein Zeichen aufnehmen. Wenn du mehr willst dann nimm entweder string (include <string> nicht vergessen) oder "char pwd[100]" für 100 Zeichen.

- Die Abfrage pwd == 'lalala' ist afaik falsch! Die ' sind nur für ein Zeichen, wie 'a' oder 'B'. Du musst " verwenden (Shift+2), also "lalala".

Dr.Doom
2003-09-29, 22:28:35
#include <stdlib.h>
#include <stdio.h>

int main() {

char pwd[20];
printf("Bitte das Passwort eingeben:\n");
scanf("%s", &pwd);
printf("Debug: Ihre Eingabe: %s \n", pwd);
if ( !strcmp(pwd,"lalala") ) { printf("if->then\nRichtig\n"); }
else { printf("if->else\nFalsch, du Sau!\n"); }
system("PAUSE"); return 0;
}

(Kann kein C++, daher normal C. ;) )

Siegfried86
2003-09-29, 22:37:06
so ich hab das jetzt mal geändert
mit char pwd[6] und " statt '
allerdings springt es immer noch in die else schleife
mit strings hab ich es auch schon probiert (selbes problem)
und wieso is if so schlimm? *g*
mit dem case dings geht " glaub garnicht nur '

das c programm von dir läuft leider nicht weil mein compiler strcmp nicht kennt (ms visual basic 6.0)

Gast
2003-09-29, 22:38:09
ms visual c++ 6.0 sollte das natürlich heißen

Gnafoo
2003-09-29, 22:43:10
#include <iostream>
#include <cstring>
using namespace std;

int main() {
char pwd[256];

cout << "Bitte das Passwort eingeben. \n";
cin >> pwd;

cout << "Ihre Eingabe: " << pwd << "\n";

if(strcmp(pwd, "lalala")==0) {
cout << "Richtig. \n";
} else {
cout << "Falsch. \n";
}

return 0;
}


probiers mal damit .. habs aber nicht getestet

Das dein Compiler kein strcmp verträgt liegt daran, dass du
die string.h bzw die cstring in c++ includen musst.

cu DerTod

Dr.Doom
2003-09-29, 22:45:52
Original geschrieben von Siegfried86
und wieso is if so schlimm? *g*
Weil 'IF' eine Verzweigung ist, keine Schleife (WHILE, FOR).

Siegfried86
2003-09-29, 22:48:11
geil jetzt funktioniert es endlich ^^
vielen dank ^^

Gast
2003-10-05, 07:11:40
Original geschrieben von Siegfried86
so ich hab das jetzt mal geändert
mit char pwd[6] und " statt '
...

mit pwd[6] kannst du ganz schnell probleme bekommen wenn ein zu langes passwort eingegeben wir.