yannicST Geschrieben 14. September 2010 Geschrieben 14. September 2010 Hallo Leute, ich habe ein kleines Problem. Also ich habe ein Passwort program geschrieben und wollte ,dass bei der passwort eingabe nur sterne ausgegeben werden. Hier mein script: :mod: #include <iostream> #include<windows.h> //für die farben #define blau 9 #define turkise 11 #define gruen 10 #define rot 4 #define gelb 14 #define grau 8 #define white 15 #define black 0 void textcolor(WORD color) //Funktion fuer Farbe { SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE), color); } bool Fullscreen() { static bool bFullscreen = false; keybd_event(VK_MENU,0x38,0,0); keybd_event(VK_RETURN,0x1c,0,0); keybd_event(VK_RETURN,0x1c,KEYEVENTF_KEYUP,0); keybd_event(VK_MENU,0x38,KEYEVENTF_KEYUP,0); return bFullscreen = !bFullscreen; } int f,t,r,m,n,o; char pass3[]="yannicST"; char pass4[10]; char str2[10]; char str1[]="a4mt" ; char pass2[10]; char pass1[]="gut" ; int main() { textcolor(15); printf("Enter username:\n"); gets (pass4); n=strcmp (pass3, pass4); if(n==0) { Sleep(800); } else { textcolor(4); printf("!! Username is incorect !!"); for(int o = 0; o < 100000000 ; o++) { printf("\a"); Sleep(500); } printf("!! EXIT !!"); Sleep(900); return 0; } textcolor(15); printf("Enter password:\n"); textcolor(0); gets (str2); r=strcmp(str1, str2); textcolor(15); if(r==0) { Sleep(1000); } else { textcolor(4); printf("!! Passwot is incorect !!"); for(int f = 0; f < 100000000 ; f++) { printf("\a"); Sleep(500); } textcolor(4); printf(" EXIT NOW!!!"); Sleep(900); return 0; } textcolor(10); printf("Willkommen"); textcolor(15); printf("\a"); printf(" wie geht es ihnen?"); gets (pass2); t=strcmp (pass1, pass2); if(t==0) { textcolor(10); printf("Das ist toll!"); textcolor(15); } else { printf("Das ist sehr schade"); } getchar(); } danke schonmal yannic ST Zitieren
yannicST Geschrieben 14. September 2010 Autor Geschrieben 14. September 2010 #include <iostream> #include<windows.h> //für die farben #define blau 9 #define turkise 11 #define gruen 10 #define rot 4 #define gelb 14 #define grau 8 #define white 15 #define black 0 void textcolor(WORD color) //Funktion fuer Farbe { SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE), color); } bool Fullscreen() { static bool bFullscreen = false; keybd_event(VK_MENU,0x38,0,0); keybd_event(VK_RETURN,0x1c,0,0); keybd_event(VK_RETURN,0x1c,KEYEVENTF_KEYUP,0); keybd_event(VK_MENU,0x38,KEYEVENTF_KEYUP,0); return bFullscreen = !bFullscreen; } int f,t,r,m,n,o; char pass3[]="yannicST"; char pass4[10]; char str2[10]; char str1[]="a4mt" ; char pass2[10]; char pass1[]="gut" ; int main() { textcolor(15); printf("Enter username:\n"); gets (pass4); n=strcmp (pass3, pass4); if(n==0) { Sleep(800); } else { textcolor(4); printf("!! Username is incorect !!"); for(int o = 0; o < 100000000 ; o++) { printf("\a"); Sleep(500); } printf("!! EXIT !!"); Sleep(900); return 0; } textcolor(15); printf("Enter password:\n"); textcolor(0); gets (str2); r=strcmp(str1, str2); textcolor(15); if(r==0) { Sleep(1000); } else { textcolor(4); printf("!! Passwot is incorect !!"); for(int f = 0; f < 100000000 ; f++) { printf("\a"); Sleep(500); } textcolor(4); printf(" EXIT NOW!!!"); Sleep(900); return 0; } textcolor(10); printf("Willkommen"); textcolor(15); printf("\a"); printf(" wie geht es ihnen?"); gets (pass2); t=strcmp (pass1, pass2); if(t==0) { textcolor(10); printf("Das ist toll!"); textcolor(15); } else { printf("Das ist sehr schade"); } getchar(); } Zitieren
FinalFantasy Geschrieben 15. September 2010 Geschrieben 15. September 2010 Also ich sehe hier nichts, was dafür sorgen sollte, dass Sternchen statt den getippten Zeichen auf dem Bildschirm ausgeben werden. Du liest mit der gets() Funktion ein, die gibt afaik genau das auch aus, was du tippst. Willst du das nicht, und das willst du ja nicht, dann kannst du gets() nicht verwenden. Du brauchst dazu z.B. eine Funktion, die von der Tastatur liest und kein Echo gibt. Dann kannst du manuell für jeden Tastendruck ein Sternchen auf der Konsole ausgeben. Noch andere Anmerkungen: - Wofür die ganzen Sleep() Aufrufe? - Warum hast du (fast) alle Variablen global? - Einrücken musst du noch üben - Das was du da schreibst, nennt man unter Entwicklern Spaghetticode - gets() zum Einlesen von Strings in char-arrays macht afaik keine Längenprüfung. Wenn du damit in char[10] einliest und jemand tippt 11 Zeichen, gibts einen buffer overflow. - wenn du oben schon Defines für die Textfarben anlegst, wieso verwendest du dann im Code trotzdem die Zahlen und nicht die Namen? Edit: Achja und verschlüsselt, wie du im Betreff schreibst, wird hier auch nichts. 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.