回 帖 发 新 帖 刷新版面

主题:[讨论]命令行下如何设置密码字符(输入字符时显示为*)

c#中,命令行下如何设置密码字符(根据输入字符的多少,显示*)

回复列表 (共3个回复)

沙发

.net 2.0中,Console.ReadKey(true);可以读取当前按下的键,记录下来之后再Console.Write('*');循环往复……

板凳

你的问题提得很有意思。。。我试了一下。。以下应该有符合你的要求。具体CODE请看:

namespace Temp
{

    using System;
    using System.Text;

    class Program
    {
        static void Main(string[] args)
        {
            // 记录输入信息
            ConsoleKeyInfo chi;

            // 储存输入的值
            StringBuilder sb = new StringBuilder();

            // 直到输入的是回车才停止
            do
            {
                // 这里的参数false表示显示所输入的字符、true表示不显示
                chi = Console.ReadKey(true);

                // 将输入的结果存入到StringBuilder类型中
                sb.Append(chi.KeyChar.ToString());

                // 用*来代替
                Console.Write("*");
                
            } while (chi.Key != ConsoleKey.Enter);

            // 为了美观显示结果时多显示一行。
            Console.WriteLine();

            // 输出结果
            Console.WriteLine(sb.ToString());

            // 暂停
            Console.ReadLine();
        }
    }
}

3 楼

收益非浅

我来回复

您尚未登录,请登录后再回复。点此登录或注册