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 ...
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.
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
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
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; }
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.
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden