在下面的示例中,假设用户输入负数,如何将光标移回用户输入无效数字的相同位置,以便程序可以继续?
Console.Write("Enter a number for the factorial: ");
int k = Convert.ToInt32(Console.ReadLine());
if (k < 0)
{
Console.WriteLine("Please enter a number that is greater than or equal to zero");
}
答案 0 :(得分:0)
我认为这符合您的要求
string errormessage="Please enter a positive number; previous input was invalid";
Console.WriteLine("Enter the number: ");
int k = Convert.ToInt32(Console.ReadLine());
while (k < 0)
{
Console.Write(errormessage);
//get back to the input line
Console.SetCursorPosition(0, Console.CursorTop-1);
//Clearing the previous input
for (int i = 0; i < k.ToString().Length; i++)
Console.Write(" ");
Console.Write("\r");
k = Convert.ToInt32(Console.ReadLine());
}
//Clearing the error message
for (int i = 0; i < errormessage.Length; i++)
Console.Write(" ");
Console.WriteLine("\r");
抱歉,不是最漂亮的代码,而是完成工作!
答案 1 :(得分:0)
利用此similar post中的方法,我相信您可以解决您的问题。基本上只需复制ClearConsoleLine方法并使用Console.SetCursorPosition移动到所需的行/列。