2017-10-13 1 views
-3
static string ReadPassword(int length, char c) 

Die Methode sollte es Ihnen ermöglichen, eine Zeichenkette als Passwort einzugeben. Länge ist die Mindestlänge des Passworts und c ist das Zeichen auf dem Bildschirm für jede Ziffer des Passworts angezeigt.Eine Zeichenkette in ein Passwort umwandeln

Geben Sie mindestens 8 Zeichen für den Einsatz im Haupt ein Passwort mit:

string pwd = ReadPassword(8, '●') 

Der Benutzer gibt die Buchstaben seines/ihres Passworts. Auf dem Bildschirm erscheinen jedoch keine Buchstaben, sondern das Zeichen, das in c gespeichert ist, beispielsweise die Aufzählung '●'.

Wie baue ich das Programm so, dass es schreibt * für jedes in der Konsole eaven eingegebene Zeichen obwohl meine Methode endet bei Rückgabe s ;?

+4

Ok .. aber .. Sie haben vergessen, eine Frage zu stellen! –

+0

https://softwareengineering.meta.stackexchange.com/questions/6166/open-letter-to-students-with-homework-problems –

+0

Sorry, das ist mein Assigment, und ich weiß nicht wirklich, wo ich anfangen soll. –

Antwort

1

Sie können die Cursorposition Eingabeposition gesetzt oder ReadKey(true) diese Probieren:

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.Write("Set password: "); 
     var password = ReadPassword(8, 'o'); 
     Console.WriteLine(); 
     Console.WriteLine($"Your password is: {password}"); 
     Console.ReadKey(); 
    } 

    static string ReadPassword(int length, char c) 
    { 
     var left = Console.CursorLeft; 
     var top = Console.CursorTop; 
     var password = new StringBuilder(); 
     for (int i = 0; i < length; i++) 
     { 
      password.Append(Console.ReadKey().KeyChar); 
      Console.SetCursorPosition(left + i, top); 
      Console.Write(c); 
     } 
     return password.ToString(); 
    } 
} 

Sie die Dokumentation finden Sie hier: https://msdn.microsoft.com/en-us/library/system.console.readkey(v=vs.110).aspx

+0

Das funktioniert dank, ich habe für 2 versucht Stunden und schaffte es nicht, die Version von dem zu finden, was ich brauchte. Die Hilfe wird geschätzt! –

2

Hier gehen Sie.

class Program { 
     static void Main(string[] args) { 
      char ch;int len; 
      Console.WriteLine("Enter the Length of the Password: "); 
      len = Convert.ToInt32(Console.ReadLine()); 
      Console.WriteLine("Enter the Character for Password:"); 
      ch = Convert.ToChar(Console.Read()); 
      printPassword(len, ch); 
      Console.Read(); 
     } 
     public static void printPassword(int len,char ch) { 
      char ch1;String pass=""; 
      int i; 
      for (i = 0; i < len; i++) { 
       pass += Console.ReadKey(true); 
       Console.Write(ch); 
      } 
     } 
    } 
+0

Danke, könnte ich fragen, wie du zu dieser Antwort gekommen bist, da es wichtiger ist oder ich als Student in der Lage sein, dies selbst herauszufinden. Würden Sie irgendwelche Bücher auf C# empfehlen? –

+0

'Clean Code' von Martin und' Adaptive Code' von Gary McLean Hall sind sehr nette Bücher für Anfänger. – cSteusloff

+0

@cSteusloff danke dir so mutch man, das ist wirklich nett von dir. –

Verwandte Themen