Input
 
从键盘读取值列表

语法

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

参数

prompt
一个可选的字符串字面值,作为提示写入屏幕。如果后面是分号(;),则会在提示符后附加一个问号("? ")。如果后面加一个逗号,则不会附加任何内容。
variable_list
用于保存从用户读取的值的逗号分隔变量的列表。

说明

从键盘读取列表值,直到第一个回车。数值从其字符串表示形式转换为变量列表中的相应类型。字符在键入时会回显到屏幕上。

如果输入列表中有多个值,则输入行将通过扫描字符串之后的分隔符 - (逗号)(,),或数字后的逗号和空格分隔。将从字符串值中修剪周围的空白。如果一个输入字符串中有一个逗号,它必须用引号("...")包装,以防止它被拆分。
为了输入到没有定界的单个字符串,应该使用Line Input.

prompt (如果有的话)写入当前光标位置的屏幕,读取的字符将在提示后立即回到屏幕。如果没有指定提示符,则会在当前光标位置回显字符。

;之后的可选前导分号(;)与Print语句中的可选尾随分号类似:所有字符已被回显后,光标将保留在同一行上,否则光标将移动到下一行的开始。

如果读取的值多于变量列表中的值,则额外的值将被忽略;如果读取较少的值(即用户在输入所有值之前按enter键),剩余的变量将被初始化 - 数字变量为零(0),字符串变量为空字符串(""))。

使用类似于程序ValValLng的方法转换数值,使用数字格式最合适的函数,尽可能多地转换数字。

Input的编辑容量有限:允许使用退格键删除字符。如果需要更好的用户界面,则应使用自定义输入例程。

例子


Example #1
Dim n As String, a As Integer
Input "输入[Name, Age]:", n, a
Print n
Print a


Example #2
Dim As Double a, b
Dim As String yn

Do
    
    Input   "请输入一个数字:", a
    Input ; "另一个:", b
    Print , "谢谢"
    Sleep 500
    Print
    Print "总数是"; a + b
    Print
    
    Do
        Input "你想输入更多的数字吗?"; yn
        yn = LCase(yn)
    Loop Until yn = "y" Or yn = "n"
    
Loop While LCase(yn) = "y"


与QB差别

  • 如果用户输入错误的值数,或者如果期望值为一个数字并且获取的字符串不是有效的数字,则QBASIC会发出消息“重新启动”,并且不再继续进行,直到它收到有效输入。
  • 当从控制台输入数字时,QB不会将空格视为分隔符。

参考