从键盘读取值列表
语法
Input [;] ["prompt " ,|; ] variable_list
参数
prompt
一个可选的字符串字面值,作为提示写入屏幕。如果后面是分号(;),则会在提示符后附加一个问号("? ")。如果后面加一个逗号,则不会附加任何内容。
variable_list
用于保存从用户读取的值的逗号分隔变量的列表。
说明
从键盘读取列表值,直到第一个回车。数值从其字符串表示形式转换为变量列表中的相应类型。字符在键入时会回显到屏幕上。
如果输入列表中有多个值,则输入行将通过扫描字符串之后的分隔符 - (逗号)(
,),或数字后的逗号和空格分隔。将从字符串值中修剪周围的空白。如果一个输入字符串中有一个逗号,它必须用引号(
"...")包装,以防止它被拆分。
为了输入到没有定界的单个字符串,应该使用
Line Input.
prompt (如果有的话)写入当前光标位置的屏幕,读取的字符将在提示后立即回到屏幕。如果没有指定提示符,则会在当前光标位置回显字符。
;之后的可选前导分号(
;)与
Print语句中的可选尾随分号类似:所有字符已被回显后,光标将保留在同一行上,否则光标将移动到下一行的开始。
如果读取的值多于变量列表中的值,则额外的值将被忽略;如果读取较少的值(即用户在输入所有值之前按enter键),剩余的变量将被初始化 - 数字变量为零(
0),字符串变量为空字符串(
""))。
使用类似于程序
Val和
ValLng的方法转换数值,使用数字格式最合适的函数,尽可能多地转换数字。
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不会将空格视为分隔符。
参考