Input
 
Читает список значений с клавиатуры

Синтаксис

Input [;] ["prompt" ,|; ] variable_list

Параметры

prompt
необязательный строковой литерал, который пишется на экране в виде подсказки. Если к нему прилается точка с запятой (;), знак вопроса ("? ") будет добавлен к строке. Если к нему прилагается запятая, ничего не будет добавлено.
variable_list
список переменных, разделенных запятыми, используемых для хранения прочитанных значений.

Описание

Читает список значений с клавиатуры вплоть до первого возврата каретки. Численные значения преобразуются из их строкового представления в соответствующие типы в списке переменных. Символы отображаются на экране так, как они набираются.

Если есть больше чем одно значение в списке ввода, то линейный ввод будет разделен, путем сканирования разделителей - запятых (,) после строки, или запятыми и пробелами после номера. Ближайшие пробелы будут удалены из строковых значений. Если входная строка имеет запятую , она должна быть заключена в кавычки ("...") чтобы не было разделения.
Для ввода в одну строку без разделения, можно использовать оператор Line Input.

prompt - если указан, то подсказка пишется на экране в текущей позиции курсора, а прочитанные символы отображаются на экране сразу же после подсказки. Если prompt не указан, символы записываются в текущей позиции курсора.

Использование необязательной точки с запятой (;) после Input похоже на необязательное использование точки с запятой в Print: курсор останется на той же строке после всех введенных символов, в противном случае, курсор переместится к началу следующей строки.

Если считывается больше значений, чем указано в списке переменных, дополнительные значения будут игнорироваться; если меньше значений считывается (т.е. пользователь нажимает Enter перед вводом всех значений), остальные переменные будут инициализированы нулем (0), и строковые переменные пустой строкой ("").

Числовые значения преобразуются с использованием методов, аналогичных процедурам Val и ValLng, с использованием соответствующих функций для форматирования числа, с преобразованием такого кол-ва числовых символов, насколько это возможно.

Input имеет ограниченные возможности редактирования: позволяется стирать символы, используя клавишу BACKSPACE. Если необходим улучшенный пользовательский интерфейс, то нужно использовать свой собственный.

Пример


Пример #1
Dim n As String, a As Integer
Input "Enter [Name, Age]: ", n, a
Print n
Print a


Пример #2
Dim As Double a, b
Dim As String yn

Do
    
    Input   "Please enter a number: ", a
    Input ; "And another: ", b
    Print , "Thank you"
    Sleep 500
    Print
    Print "The total is "; a + b
    Print
    
    Do
        Input "Would you like to enter some more numbers"; yn
        yn = LCase(yn)
    Loop Until yn = "y" Or yn = "n"
    
Loop While LCase(yn) = "y"


Отличия от QB

  • Если пользователь вводит неправильное количество значений, или если при ожидании ряда значений получена строка, которая не является допустимым числом, то QBASIC выдает сообщение "Redo from start", и не продолжает далее, пока не получит действительный ввод.
  • QB не обрабатывает пробел в качестве разделителя при вводе номера из консоли.

См. также