gpt4 book ai didi

c# - 如何从控制台窗口中删除 char '*'?命令控制台。写入 ("\b");没用

转载 作者:行者123 更新时间:2023-11-30 14:57:43 25 4
gpt4 key购买 nike

这是 contain from 方法,它写入隐藏的字母。当我按下退格键时,我需要以某种方式从控制台中删除 char *。

    private static string Password()
{
bool enter=true;
string pass="";
do
{

char letter = Console.ReadKey(true).KeyChar;
if (letter == (char)13)
{ enter = false; }
else if (letter == (char)8 && pass.Length >= 1)
{
pass = pass.Remove(pass.Length - 1);
Console.Write("\b");
}
else
{
pass += letter;
Console.Write("*");
}
} while (enter);
Console.WriteLine();
return pass;
}

我搜索了一个答案,但是命令 Console.Write("\b");但它似乎无法正常工作。

最佳答案

您可以将光标位置后退一位,写入一个空字符,然后再将其移回。像这样:

private static string Password()
{
bool enter = true;
string pass = "";
do
{
char letter = Console.ReadKey(true).KeyChar;
if (letter == (char)13)
{ enter = false; }
else if (letter == (char)8 && pass.Length >= 1)
{
pass = pass.Remove(pass.Length - 1);
Console.CursorLeft--;
Console.Write('\0');
Console.CursorLeft--;
}
//Additionally, don't print backspaces if it's the first character.
else if (letter != (char)8)
{
pass += letter;
Console.Write("*");
}
} while (enter);
Console.WriteLine();
return pass;
}

关于c# - 如何从控制台窗口中删除 char '*'?命令控制台。写入 ("\b");没用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20409026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com