module Scanning:sig
..end
type
in_channel
Scanf
模块的输入通道概念:这些通道提供了从任何字符源读取所需的所有机制,包括 in_channel
值。Scanf.Scanning.in_channel 值也称为格式化输入通道或等效的扫描缓冲区。类型 Scanf.Scanning.scanbuf
下面是 Scanning.in_channel
的别名。请注意,Scanning.in_channel
不是并发安全的:并发使用可能会产生任意值或异常。
typescanbuf =
in_channel
扫描缓冲区的类型。扫描缓冲区是格式化输入函数获取字符的来源。扫描缓冲区保存扫描的当前状态,以及从输入获取下一个字符的函数,以及用于存储迄今为止匹配的字符串的标记缓冲区。
注意:扫描操作通常可能需要预先检查一个字符;当此“前瞻”字符不属于读取的标记时,它将存储回扫描缓冲区,并成为下一个要读取的字符。
val stdin : in_channel
Scanf
模块的标准输入概念。Scanning.stdin
是连接到 stdin
的 Scanf.Scanning.in_channel
格式化输入通道。
注意:在交互式系统中,当从 stdin
读取输入时,触发评估的新行字符是输入的一部分;因此,扫描规范必须正确跳过此额外的新行字符(例如,只需将 '\n'
添加为格式字符串的最后一个字符)。
typefile_name =
string
一个方便的别名来指定文件名。
val open_in : file_name -> in_channel
Scanning.open_in fname
返回一个 Scanf.Scanning.in_channel
格式化输入通道,用于以文本模式从文件 fname
进行缓冲读取。
注意:open_in
返回一个格式化输入通道,该通道可以高效地以大块读取字符;相反,下面的 from_channel
返回必须每次读取一个字符的格式化输入通道,从而导致扫描速度大大降低。
val open_in_bin : file_name -> in_channel
Scanning.open_in_bin fname
返回一个 Scanf.Scanning.in_channel
格式化输入通道,用于以二进制模式从文件 fname
进行缓冲读取。
val close_in : in_channel -> unit
关闭与给定的 Scanf.Scanning.in_channel
格式化输入通道关联的 in_channel
。
val from_file : file_name -> in_channel
上面 Scanf.Scanning.open_in
的别名。
val from_file_bin : string -> in_channel
上面 Scanf.Scanning.open_in_bin
的别名。
val from_string : string -> in_channel
Scanning.from_string s
返回一个 Scanf.Scanning.in_channel
格式化输入通道,该通道从给定的字符串读取。读取从字符串的第一个字符开始。当到达字符串末尾时,将设置输入结束条件。
val from_function : (unit -> char) -> in_channel
Scanning.from_function f
返回一个 Scanf.Scanning.in_channel
格式化输入通道,其读取方法为给定的函数。
当扫描需要更多字符时,将调用给定的函数。
当函数没有更多字符要提供时,它必须通过引发 End_of_file
异常来发出输入结束信号。
val from_channel : in_channel -> in_channel
Scanning.from_channel ic
返回一个 Scanf.Scanning.in_channel
格式化输入通道,该通道从常规的 in_channel
输入通道 ic
参数读取。读取从 ic
的当前读取位置开始。
val end_of_input : in_channel -> bool
Scanning.end_of_input ic
测试给定 Scanf.Scanning.in_channel
格式化输入通道的输入结束条件。
val beginning_of_input : in_channel -> bool
Scanning.beginning_of_input ic
测试给定 Scanf.Scanning.in_channel
格式化输入通道的输入开始条件。
val name_of_input : in_channel -> string
Scanning.name_of_input ic
返回给定 Scanf.Scanning.in_channel
格式化输入通道的字符源的名称。