yannicST Geschrieben 8. Juni 2010 Geschrieben 8. Juni 2010 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 ... Zitieren
Klotzkopp Geschrieben 8. Juni 2010 Geschrieben 8. Juni 2010 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. Zitieren
yannicST Geschrieben 8. Juni 2010 Autor Geschrieben 8. Juni 2010 (bearbeitet) 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 2010 von yannicST Zitieren
yannicST Geschrieben 8. Juni 2010 Autor Geschrieben 8. Juni 2010 (bearbeitet) 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 2010 von yannicST Zitieren
yannicST Geschrieben 8. Juni 2010 Autor Geschrieben 8. Juni 2010 #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; } Zitieren
Klotzkopp Geschrieben 8. Juni 2010 Geschrieben 8. Juni 2010 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. Zitieren
lilith2k3 Geschrieben 8. Juni 2010 Geschrieben 8. Juni 2010 (bearbeitet) 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 2010 von lilith2k3 Zitieren
yannicST Geschrieben 10. Juni 2010 Autor Geschrieben 10. Juni 2010 danke jetzt klapt es auch :) ... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.