사용자가 StringBuilder를 사용하여 이름을 적을 수있는 화면을 만들려고합니다. 내가 가진 문제는 백 스페이스의 기능입니다. 나는 눌린 첫 번째 글자를 제외한 모든 글자를 제거 할 수 있습니다. 또한, 그것은 내가 어떤 성격을 가졌더라도 제출 될 수있는 것처럼 보인다.백 스페이스가 올바르게 작동하지 않습니다.
ConsoleKeyInfo cki = new ConsoleKeyInfo();
bool enterPressed = false;
StringBuilder name = new StringBuilder();
int temp = 61;
do
{
Console.SetCursorPosition(temp, 14);
cki = Console.ReadKey(true);
if (cki.Key == ConsoleKey.Enter && name.Length > 0 && name.Length < 12)
{
enterPressed = true;
Console.SetCursorPosition(61, 18);
Console.Write(name);
}
else if ("qwertyuiopasdfghjklzxcvbnm".Contains(cki.KeyChar) && name.Length < 12)
{
name.Append(cki.KeyChar);
Console.Write(cki.KeyChar);
temp += 1;
}
else if(cki.Key == ConsoleKey.Backspace && name.Length > 0)
{
name.Remove(name.Length-1, 1);
Console.Write("\b \b");
}
} while (name.Length > 0 && !enterPressed);
Console.ReadLine()을 알고 있습니까? 그건 이미 네가 원하는 걸하는거야. –