国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C# > 正文

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

2020-01-24 01:11:37
字體:
供稿:網(wǎng)友

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

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

具體代碼如下

//控制臺(tái)輸入密碼顯示星號(hào)      //定義一個(gè)字符串接收用戶輸入的內(nèi)容      string input = null;      Console.WriteLine("請(qǐng)輸入密碼");      while (true)      {        //存儲(chǔ)用戶輸入的按鍵,并且在輸入的位置不顯示字符        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)效果如下

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 旬邑县| 门头沟区| 台中县| 伊通| 中山市| 江门市| 五华县| 玉山县| 中江县| 大城县| 东莞市| 西充县| 卢氏县| 阳新县| 翁源县| 色达县| 慈溪市| 枣强县| 兴文县| 文安县| 邵阳县| 辽中县| 西宁市| 宁强县| 新干县| 资源县| 醴陵市| 云和县| 墨玉县| 永吉县| 宁远县| 宣武区| 平潭县| 大悟县| 奉化市| 昌宁县| 武宁县| 稷山县| 永和县| 黎川县| 麟游县|