Veröffentlicht 17. Juli 200223 j Hi leute, ich würde gerne eine kleine Consolen Anwendung schreiben welche ein Passwort verlangt. die eingabe des Passwortes sollte nicht angezeigt werden, bzw. mann sollte nur Sternchen sehen... ->Wie kann ich das realisieren?? ->Gibt es da schon eine Funktion? - muss ich dazu eine bestimmte Bibliothek includen?? Ich verwende den Dev-C++ Compiler ver. 4.9 Danke im Vorraus!
17. Juli 200223 j Dazu musst Du an Dein System ran, d. h. die Zeichendarstellung der Console muss veraendert werden mit einer compilerspezifischen Funktion. Mit reinen Standardsprachmitteln ist es m. E. nicht moeglich.
17. Juli 200223 j Hmmm...ist zwar keine schöne Lösung ( C und C++ gemischt) und nur schnell zusammengeschustert, aber Du kannst das ja modifizieren. Das Prog bricht halt nach 10 Eingaben ab und gibt das Passwort aus. #include <iostream> #include <string> #include <conio.h> using namespace std; int main(int argc, char** argv) { char myChar = 'a'; string pass = ""; while(1) { myChar = getch(); pass += myChar; if(pass.length() == 10) break; cout << "*"; } cout << endl << pass; cin.get(); return 0; }
17. Juli 200223 j Also meine Version find ich schoener printf("Passwort:"); char passw[10]; int i = 0; char c; c = getch(); while(c != char(0x0D) && i < 10) { putch('*'); passw[i] = c; i++; c = getch(); } passw[i] = 0x00; printf("\nDas Passwort war:%s\n",passw);[/PHP] Goos
17. Oktober 200222 j Habe bei meinem Thread leider auf den falschen Button gedrückt, jetzt ist der closed Daher frage ich eben hier: Goos, kannst Du mir folgende Zeile erklären? while(c != char(0x0D) && i < 10) Die while-Schleife als solche ist klar, nur mit dem 0x0D kann ich nichts anfangen.
17. Oktober 200222 j Das mit dem 0x0D is einfach nur fuer die Entertaste mit der die Passwort Eingabe abgeschlossen werden soll. Du koenntest....was weiss ich...*nachguck*...auch 0x4D nehmen, dann hoert die Eingabe halt auf, sobald du ein M eingibst Ich hoffe, das hilft dir weiter. Goos
18. Oktober 200222 j Nuja...man nehme zum Beispiel eine ASCII Tabelle, oder man probierts aus indem man sich den Code der entsprechenden Taste holt. z.B. mit int c = getch(); c = getch(); printf("Sondertaste mit Code %d", c); [/PHP] ...was aber nur bei Sondertasten funktioniert.....alle anderen muesstest in dem einfachen Beispiel doppelt druecken Hier wuerdest dann fuer Enter eine 13 bekommen, was Hexadezimal notiert dann das 0x0D waere. Goos
22. Oktober 200222 j Jetzt folgt ein Consolenprogramm, das euch den Zugang ins PENTAGON ermöglicht! *lol* Aber vorsicht! Nach dem dritten fehlerhaften Versuch, bricht es ab und piept! *g* Das Programm benutzt Bibliotheken aus dem BORLAND C-BUILDER 5! //--------------------------------------------------------------------------- #include <stdio.h> #include <conio.h> #include <string.h> void main() { const char *pers_nr = "666"; //Zugangsnr (MAXIMAL 8 ZEICHEN) const char *code = "drin"; //Zugangscode (MAXIMAL 8 ZEICHEN) char *ab_pers; //Abgefragte Zugangsnr char *ab_code; //Abgefragter Zuganscode int i = 0; //Schleifendurchläufe int codeguard; //Rückgabewert des Stringvergleiches for(i=0;i<3;) { printf(" ENTRY TO PENTAGON\n"); printf(" ~~~~~~~~~~~~~~~~~\n"); ab_pers = getpass(" IDNR: "); printf(" \n"); codeguard = strcmp(pers_nr, ab_pers); if((codeguard > 0) || (codeguard < 0)) { i++; gotoxy(45, 30); printf("!! WRONG IDNR !!\n"); gotoxy(45, 31); printf("!! ACCESS DENIED !!\n "); if(i == 3) { gotoxy(45, 33); printf("!! SYSTEM ABBORTED !!\n\a "); getch(); continue; } else { getch(); clrscr(); continue; } }//if ab_code = getpass(" PASSWORD: "); printf(" \n"); codeguard = strcmp(code, ab_code); if((codeguard > 0) || (codeguard < 0)) { i++; gotoxy(45, 30); printf("!! WRONG PASS !!\n"); gotoxy(45, 31); printf("!! ACCESS DENIED !!\n "); if(i == 3) { gotoxy(45, 33); printf("!! SYSTEM ABBORTED !!\n\a "); getch(); continue; } else { getch(); clrscr(); continue; } }//if gotoxy(45, 30); printf("!! ACCESS GRANTED !!\n\a "); i = 3; getch(); }//for }//main //---------------------------------------------------------------------------
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.