如何读取输入然后在同一行上写入?
How to read an input then write on same line?
我正在使用 Visual Basic,想问一下如何以这种格式输入?
"First name: Abdul, Second name: Sharif"
我写了这段代码:
Console.Write("First name: ")
FirstName = Console.ReadLine()
Console.Write(", Second name: ")
SecondName = Console.ReadLine()
但是,当我输入第一个值后,它会跳转到下一行。
那么在同一行输入和书写的方式是什么呢?
谢谢。
ReadLine() 读取一行,这就是它转到下一行的原因。
您需要改用 ReadKey()。但是随后您将需要一个循环将其添加到 FirstName 变量中,并且您将不得不处理特殊字符(如 Enter/Return)。
与 Console.Write()
和 Console.WriteLine()
不同,Console.Read()
方法的作用与它的对应方法 Console.ReadLine()
不同,而无需下一行。相反,它读取下一个字符。 Console.Read()
和Console.ReadKey()
可以用来实现你想要的,
但是我发现还有另一种方法更适合您的需要;
从 Console.CursorTop
变量中减去 1,然后将 Console.CursorLeft
变量设置为您要打印到的位置(在 X 轴中)。
然后,打印字符串。更改光标的 X 位置时,请记住输入回显时的长度,以及一般情况下上一行中的任何字符。
有人可能会说Console.SetCursorPosition()
可以在这里使用,这是正确的,但效率较低,因为您需要获取光标当前的Y位置+调用方法。
谢谢!现在可以使用了。
Console.Write("First name: ")
FirstName = Console.ReadLine()
Console.CursorTop = Console.CursorTop - 1
Console.SetCursorPosition(Len("First name; " & FirstName), Console.CursorTop)
Console.Write(", Second name: ")
SecondName = Console.ReadLine()
我正在使用 Visual Basic,想问一下如何以这种格式输入? "First name: Abdul, Second name: Sharif"
我写了这段代码:
Console.Write("First name: ")
FirstName = Console.ReadLine()
Console.Write(", Second name: ")
SecondName = Console.ReadLine()
但是,当我输入第一个值后,它会跳转到下一行。 那么在同一行输入和书写的方式是什么呢? 谢谢。
ReadLine() 读取一行,这就是它转到下一行的原因。
您需要改用 ReadKey()。但是随后您将需要一个循环将其添加到 FirstName 变量中,并且您将不得不处理特殊字符(如 Enter/Return)。
与 Console.Write()
和 Console.WriteLine()
不同,Console.Read()
方法的作用与它的对应方法 Console.ReadLine()
不同,而无需下一行。相反,它读取下一个字符。 Console.Read()
和Console.ReadKey()
可以用来实现你想要的,
但是我发现还有另一种方法更适合您的需要;
从 Console.CursorTop
变量中减去 1,然后将 Console.CursorLeft
变量设置为您要打印到的位置(在 X 轴中)。
然后,打印字符串。更改光标的 X 位置时,请记住输入回显时的长度,以及一般情况下上一行中的任何字符。
有人可能会说Console.SetCursorPosition()
可以在这里使用,这是正确的,但效率较低,因为您需要获取光标当前的Y位置+调用方法。
谢谢!现在可以使用了。
Console.Write("First name: ")
FirstName = Console.ReadLine()
Console.CursorTop = Console.CursorTop - 1
Console.SetCursorPosition(Len("First name; " & FirstName), Console.CursorTop)
Console.Write(", Second name: ")
SecondName = Console.ReadLine()