Skip to content

LINE INPUT


从键盘读取一行输入

语法

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

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系