提交后隐藏Console.ReadLine输入 - C#Console App

时间:2017-10-26 22:21:32

标签: c# .net input output console-application

在一个请求用户输入的简单控制台应用程序中,我要求用户输入。然后将该输入保存到变量中供以后使用。

如何在键入控制台时显示输入,但在提交后隐藏输入?

例如:

class Program
{
    static void Main()
    {

        string input = null;

        Console.WriteLine("Type Something: ");
        input = Console.ReadLine();
        Console.WriteLine("You Typed" + input);
    }
}

运行上面的代码后,下面的输出打印到控制台:

Type Something:
abc 123 
You Typedabc 123

如何修改此代码,以便在用户输入并提交输入后,它不会出现在输出中?

1 个答案:

答案 0 :(得分:2)

之前我已经通过创建一个方法将光标移动到前一行,在行上写入空格,然后再次将光标重置到行的开头来完成此操作:

private static void DeletePrevConsoleLine()
{
    if (Console.CursorTop == 0) return;
    Console.SetCursorPosition(0, Console.CursorTop - 1);
    Console.Write(new string(' ', Console.WindowWidth));
    Console.SetCursorPosition(0, Console.CursorTop - 1);
}

用法:

string input = null;

Console.WriteLine("Type Something: ");
input = Console.ReadLine();
DeletePrevConsoleLine();
Console.WriteLine("You Typed: " + input);

Console.Write("\nDone!\nPress any key to exit...");
Console.ReadKey();