LINE INPUT
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgLineinput
- 最后更新: 2022-04-30
从键盘读取一行输入
语法
Line Input [;] [promptstring {;|,} ] stringvariable1
or
Line Input [;] promptstring {;|,} stringvariable2 , maxlength参数
promptstring
等待输入之前显示的提示。若后跟分号(;),则在提示后追加问号("? ")。若后跟逗号,则不追加任何内容。
stringvariable1
接收文本行的可变长度或固定长度(且已知大小)字符串
stringvariable2
接收文本行的解引用 {z|w}string 指针或通过引用传递的 {z|w}string 变量(两者的字符串缓冲区大小均未知)
maxlength
允许写入字符串缓冲区的最大字符数,包括 NULL 终止符
说明
从键盘读取一行文本,并将其存储到字符串变量中。
promptstring(若有)写入到屏幕上的当前光标位置,读取的字符紧跟在提示之后回显到屏幕上。若未指定提示,字符在当前光标位置回显。
Line Input 后可选的前置分号(;)类似于 Print 语句中可选的尾随分号:所有字符回显后光标将停留在同一行,否则光标移到下一行的开头。
Line Input 具有有限的编辑能力:允许使用左右光标键导航文本,以及删除或插入字符。若需要更好的用户界面,应使用自定义输入程序。
有两种语法可用:
- 第一种语法仅在字符串缓冲区大小(由
stringvariable1提供)可变或固定(且已知)时允许使用。对于第一种语法,promptstring参数是可选的。 - 第二种带
maxlength参数的语法仅在字符串缓冲区大小(由stringvariable2提供)未知时允许使用。这发生在解引用的Zstring/Wstring指针,或通过引用传递的Zstring/Wstring变量时。这可用于截断要读取的文本行,或避免溢出提供的字符串缓冲区的已分配数据。对于第二种语法,promptstring参数是必须的,即使为空(使用"")。
示例
start GeSHi
vb
Dim s As String
Line Input "Enter a line"; s
Print "Full line that you entered:"
Print "'"; s; "'"
Print
Const maxlength = 11 '' max 10 characters plus 1 null terminal character
Dim pz As ZString Ptr = CAllocate(maxlength, SizeOf(ZString))
Line Input "Enter a line"; *pz, maxlength
Print "First " & maxlength - 1 & " characters that you entered:"
Print "'"; *pz; "'"
Deallocate(pz)end GeSHi
版本
- 在 fbc 1.10.0 之前,不支持第二种语法(带
maxlength参数)。
与 QB 的差异
- QBASIC 只允许将字面字符串用作提示文本。FreeBASIC 允许任何变量或常量字符串表达式。
另请参阅
Line Input #Input
返回 目录