欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實(shí)現(xiàn)在控制臺輸入密碼顯示星號的方法

 更新時(shí)間:2016年04月21日 14:10:33   作者:一個(gè)人的長征  
這篇文章主要介紹了C#實(shí)現(xiàn)在控制臺輸入密碼顯示星號的方法,感興趣的小伙伴們可以參考一下

在控制臺輸入的內(nèi)容C#默認(rèn)按照字符串進(jìn)行處理,如果直接讓用戶一次輸入完畢就很難實(shí)現(xiàn) 顯示星號的功能。但是如果讓用戶一次只能輸入一個(gè)字符就,在將用戶輸入的字符替換為星號就可以實(shí)現(xiàn)了!

首先,C#中能讓用戶按下一個(gè)按鍵的方法就是Console.Readkey(),用戶一次只能按下一個(gè)按鍵,其中它的另外一個(gè)重載方法是Console.ReadKey(bool b),bool類型的參數(shù)用來控制是否在控制臺上顯示用戶按下的按鍵。那么我們可以傳入true參數(shù),使用戶按下的按鍵不顯示在控制臺上,這樣光標(biāo)始終停留在原來的位置,然后在該位置打印一個(gè)*號即可實(shí)現(xiàn)。同時(shí)此方法的返回值為ConsoleKeyInfo類型。通過查MSND得知ConsoleKeyInfo類型是描述按下的控制臺鍵,包括控制臺鍵表示的字符以及 Shift、Alt 和 Ctrl 修改鍵的狀態(tài)。此類型數(shù)據(jù)類型是結(jié)構(gòu)體類型,其中有兩個(gè)重要的屬性Key和KeyChar。其中的Key對應(yīng)用于按下的某個(gè)按鍵,是枚舉類型,KeyChar是用戶按下按鍵對應(yīng)的Unicode編碼字符。那么這樣我就就能拿到用戶輸入的字符串和用戶按下的按鍵。用戶輸入密碼是一個(gè)循環(huán)的過程,當(dāng)用戶按下按鍵輸入密碼時(shí)候設(shè)置不顯示字符,然后在相同位置打印一個(gè)*號,最后判斷用戶是否按下了回車鍵,這樣就結(jié)束了整個(gè)密碼輸入過程。

具體代碼如下

//控制臺輸入密碼顯示星號

      //定義一個(gè)字符串接收用戶輸入的內(nèi)容
      string input = null;

      Console.WriteLine("請輸入密碼");

      while (true)
      {
        //存儲用戶輸入的按鍵,并且在輸入的位置不顯示字符
        ConsoleKeyInfo ck = Console.ReadKey(true);

        //判斷用戶是否按下的Enter鍵
        if (ck.Key != ConsoleKey.Enter)
        {
          if (ck.Key != ConsoleKey.Backspace)
          {
            //將用戶輸入的字符存入字符串中
            input += ck.KeyChar.ToString();
            //將用戶輸入的字符替換為*
            Console.Write("*");
          }
          else
          {
            //刪除錯(cuò)誤的字符
            Console.Write("\b \b");
          }
        }
        else
        {
          Console.WriteLine();

          break;
        }
      }

      Console.WriteLine("你剛才輸入的是{0}", input);

      Console.ReadKey();

最終實(shí)現(xiàn)效果如下

相關(guān)文章

最新評論