2015-12-19 2 views
0

Я работаю над Visual Basic и хотел бы спросить, как я могу ввести этот формат? «Имя: Абдул, Фамилия: Sharif»Как читать ввод, а затем писать на одной строке?

Я написал этот код:

Console.Write("First name: ") 
    FirstName = Console.ReadLine() 
    Console.Write(", Second name: ") 
    SecondName = Console.ReadLine() 

Однако после ввода ввода первого значения, он перескакивает на следующую строку. Итак, каков способ ввода и записи на одной строке? Спасибо.

ответ

0

В отличие от Console.Write() и Console.WriteLine(), метод Console.Read() НЕ делать то же самое, как это коллега, Console.ReadLine() не спускаясь линию. Вместо этого он читает следующий символ. Console.Read() и Console.ReadKey() можно использовать для достижения того, чего вы хотите, Но есть другой подход, который я считаю более подходящим для вашей потребности; Вычесть 1 из переменной Console.CursorTop, а затем установить переменную Console.CursorLeft в положение (по оси X), на которое вы хотите выполнить печать. Затем напечатайте строку. При изменении положения X курсора не забывайте учитывать длину ввода, как оно отражено, а также любые символы в предыдущей строке в целом.

Можно сказать, что здесь можно использовать Console.SetCursorPosition(), но это не так эффективно, так как вам нужно будет получить текущую позицию Y курсора + вызвать метод.

0

ReadLine() читает строку, поэтому она переходит к следующей строке.

Вместо этого вам нужно использовать ReadKey(). Но тогда вам понадобится цикл, чтобы добавить его в переменную FirstName, и вам придется обрабатывать специальные символы (например, Enter/Return).

0

Спасибо! Он работает сейчас.

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() 
Смежные вопросы