在下面的示例中,假设用户输入了一个负数,如何将光标带回用户输入无效数字的位置,以便程序继续运行?
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");
}
在下面的示例中,假设用户输入了一个负数,如何将光标带回用户输入无效数字的位置,以便程序继续运行?
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");
}
利用这个类似帖子中的方法,我相信你可以解决你的问题。基本上只需复制 ClearConsoleLine 方法并使用 Console.SetCursorPosition 移动到所需的行/列。
我认为这将满足您的要求
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");
抱歉,不是最漂亮的代码,但可以完成工作!