Veröffentlicht 8. Juni 201015 j Hallo Leute, ich habe gerade erst angefangen mit C/C++ zu progammiren. Ich habe ein kleines Programm geschrieben, das ein Quadrat ausrechnen kann, duch eingabe.... Ich wollte dieses Programm nun mit eimen Passwort sichern, sodass es nur bestimmte Leute(...und Hacker) öffnen können. Hier ist mein script: #include <stdio.h> #include <windows.h> int main() { long int x,y,c,z; // scanf("%d",&z); FÜR DAS PASSWORT... // if(!strcmp(z,"1234")); // { // printf"willkommen\n"); // else // printf("Zugriff verweidert\n"); // return 1; // } system("pause"); while(1) { printf("geben sie eine zahl, von der sie das quadrat wissen wollen, ein\n"); scanf("%d",&x); y=x*x; printf("Das ergebnis ist %d \n",y); system("pause"); system("cls"); } return 0; } danke im vorraus ...
8. Juni 201015 j Da fehlt mir jetzt irgendwie eine Frage oder Problembeschreibung. Aber man sieht ja auch so, wo es da klemmt: strcmp vergleich char-Arrays, keine longs. Entweder machst du aus z ein char-Array und liest es entsprechend ein, oder du vergleichst dein z einfach direkt mit 1234, ohne strcmp.
8. Juni 201015 j wie kann ich es denn direkt vergleichen? weil ich habe es schon mit char versucht... und das funz auch nicht #include <stdio.h> #include <windows.h> int main() { char x; printf("Passwort: \n"); scanf("%d",&x); if (!strcmp(x,"1234"); {printf("Willkomen\n"); else printf("Zugriff verweigert\n"); system("Pause"); return 0; } so sähe das dann ja aus funz aber nicht Bearbeitet 8. Juni 201015 j von yannicST
8. Juni 201015 j ok ich habe sie jetzt direkt verglichen... doch es gibt jetzt irgend einen fehler mit else:upps:confused:, ich glaube ich lasse else dann einfach weg aber danke für die antwort hat mir geholfen... :mod::mod: doch es klappt nicht Bearbeitet 8. Juni 201015 j von yannicST
8. Juni 201015 j #include <stdio.h> #include <windows.h> int main() { int y; printf("Passwort: \n"); scanf("%d",&y); if (y,"1234"); { printf("Willkomen\n"); else printf("Zugriff verweigert\n"); system("Pause"); } return 0; }
8. Juni 201015 j if (y,"1234");Das ist kein Vergleich. Vergleiche macht man mit ==. Außerdem ist es nicht sinnvoll, eine int-Variable mit einer Zeichenkette zu vergleichen, das geht in die Hose. if(y == 1234) { printf("Willkomen\n"); else printf("Zugriff verweigert\n"); system("Pause"); } Wenn du hinter der if-Anweisung mit geschweiften Klammern einen Block aufmachst, muss das else hinter diesem Block stehen, nicht mittendrin. Du tust dir übrigens selbst einen Gefallen, wenn du deinen Code von Anfang an ordentlich einrückst.
8. Juni 201015 j char x; printf("Passwort: \n"); scanf("%d",&x); Achtung ... bedenke die Größe der Zahlen, die unter einer Char Variablen abgelegt werden können! ... #include <stdio.h> #include <string.h> [...] const char *Passwort ="Geheim"; [...] char Buffer[1024]; //Puffergröße, die angibt, wie lang die eingelesene Zeile maximal sein soll printf("Bitte geben Sie das Passwort ein: "); fgets(Buffer, 1024, stdin); // Achtung fgets legt '\n' auch mit ab if (strcmp(Passwort, Buffer) != 0) /*an der Stelle den Ausstieg vorbereiten/* /* ansonsten geht's hier im programm weiter */ Bearbeitet 8. Juni 201015 j von lilith2k3
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.