Bereits ausgegebenes Zeichen wieder löschen?



  • Hi,

    Ich habe ein kleines Programm bei dem man ein Passwort eingeben muss, wobei die Zeichen durch Sternchen ausgegeben werden(bisher zumindest - bin offen für andere Lösungen) und möchte gern das wenn Backspace(8) eingegeben wird, auch wieder ein Sternchen verschwindet. Hier taucht auch meine Frage auf:

    Gibt es eine Funktion/Möglichkeit, bereits ausgegebene Sternchen wieder zu löschen?

    Vielen Dank im vorraus an alle die sich Gedanken machen.

    P.S.:Warum wird V*O*R*R*A*U*S* bei euch zensiert?



  • suchfunktion bzw google
    -> improved console



  • Da findet man u.a. das:
    http://www.wer-weiss-was.de/theme143/article3433467.html

    Aber so ein paar Sachen ändern sich im Laufe der Zeit, siehe
    neue deutsche Rechtschreibung und andere Vorgänger von Rechtschreibregeln



  • Hier ist mein Code:

    cout << "Type in your password: ";
    while(passwort != "Passwort\x0D") //wird ausgeführt solange Passwort nicht Passwort + Enter ist
    {
    eingabe = _getch(); //liest Zeichen ein
            switch(eingabe)
            {
    		default: if(eingabe != 0x08) //wenn Zeichen nicht Backspace = Rücktaste
    				 {
    				 zeichenanzahl = zeichenanzahl + 1; //die bisher eingetippten Zeichen (zeichenanzahl ist ein Integer)
    			     cout << "*"; //gibt Stern aus
    			     passwort = passwort + eingabe; //dem Passwort wird das eingegebene Zeichen am Schluss eingefügt
    				 }
    				 if(eingabe == 0x08) //wenn eingegebenes Zeichen Rücktaste
    				 {
    					 				 if(zeichenanzahl > 0) //und díe Zeichenanzahl > 0 ist
    				 {
    					 passwort.resize(passwort.length() - 1); //Das letzte Zeichen des Passwortes wird gelöscht (im String)
    					 zeichenanzahl = zeichenanzahl - 1; //Die Zeichenanzahl wird um eins kleiner, damit der Text, wie zum Beispiel "Type in your password: " nicht gelöscht wird
    					 cout << "\b \b"; //Das letzte Zeichen auf dem Bildschirm wird gelöscht
    				 }
    				 }
    				 if(eingabe == VK_RETURN && passwort != "Passwort\x0D" && passwort != "Passwort") //Wenn Passwort falsch ist
    		{
                               cout << "\b \b"; //Damit Enter nicht auf dem Bildschirm ausgegeben wird
    			Beep(440, 50); //Piept
    			Beep(220, 50); //Piept
    			cout << "\n\n";
    			cout << "Wrong Password!";
    		}
    				 }
    		}//Ab hier ist man eingeloggt
    cout << "\b \b"; //Damit Enter nicht auf dem Bildschirm ausgegeben wird
    cout << "Hello.";
    

    Das ist mein Code mit allem drum und dran. Es ist auch möglich Zeichen durch die Entfernen-Taste zu löschen, doch das habe ich noch nicht programmiert.

    MfG Hunterson
    -ich wünsche allen schonmal ein frohes neues Jahr.


Anmelden zum Antworten