Skip to content

LINE INPUT


从文件读取一行文本

语法

Line Input #file number, string_variable_1

or

Line Input #file number, string_variable_2 , max_length

参数

file number

Input 方式打开的文件的文件号

string_variable_1

接收文本行的可变长度或固定长度(且已知大小)字符串

string_variable_2

接收文本行的解引用 {z|w}string 指针或通过引用传递的 {z|w}string 变量(两者的字符串缓冲区大小均未知)

max_length

允许写入字符串缓冲区的最大字符数,包括 NULL 终止符

说明

从打开的文本文件(通过绑定的文件号以 Input 方式打开)读取一行,并将其存储到字符串变量中。

文本行以行末字符结束,但不包含行末字符。行末字符可以是 LF 字符(Chr(10))或 CRLF 字符对(Chr(13,10))。

有两种语法可用:

  • 第一种语法仅在字符串缓冲区大小(由 string_variable_1 提供)可变或固定(且已知)时允许使用。
  • 第二种带 max_length 参数的语法仅在字符串缓冲区大小(由 string_variable_2 提供)未知时允许使用。这发生在解引用的 Zstring/Wstring 指针,或通过引用传递的 Zstring/Wstring 变量时。这可用于截断要读取的文本行,或避免溢出提供的字符串缓冲区的已分配数据。

注意:

  • 使用 Line Input # 自然适合 Input 访问文件模式。

  • 在 Binary/Random 访问文件模式中也允许使用,但从未经过良好测试,结果可能有所不同。

示例

start GeSHi

vb
Open "myfile.txt" For Output As #1
Print #1, "Hello, World"
Close #1

Dim s As String
Open "myfile.txt" For Input As #1
Line Input #1, s
Close #1
Print "'" & s & "'"

Const maxlength = 6  '' max 5 characters plus 1 null terminal character
Dim pz As ZString Ptr = CAllocate(maxlength, SizeOf(ZString))
Open "myfile.txt" For Input As #1
Line Input #1, *pz, maxlength
Close #1
Print "'" & *pz & "'"
Deallocate(pz)

end GeSHi

版本

  • 在 fbc 1.10.0 之前,不支持第二种语法(带 max_length 参数)。

与 QB 的差异

另请参阅

  • Line Input
  • Input #
  • Open
  • Input (file mode)

返回 目录

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