Читает список значений с клавиатуры
Синтаксис
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 не обрабатывает пробел в качестве разделителя при вводе номера из
консоли.
См. также