模块 Scanf.Scanning

module Scanning: sig .. end

type in_channel 

Scanf 模块的输入通道概念:这些通道提供了从任何字符源读取所需的所有机制,包括 in_channel 值。Scanf.Scanning.in_channel 值也称为格式化输入通道或等效的扫描缓冲区。类型 Scanf.Scanning.scanbuf 下面是 Scanning.in_channel 的别名。请注意,Scanning.in_channel 不是并发安全的:并发使用可能会产生任意值或异常。

type scanbuf = in_channel 

扫描缓冲区的类型。扫描缓冲区是格式化输入函数获取字符的来源。扫描缓冲区保存扫描的当前状态,以及从输入获取下一个字符的函数,以及用于存储迄今为止匹配的字符串的标记缓冲区。

注意:扫描操作通常可能需要预先检查一个字符;当此“前瞻”字符不属于读取的标记时,它将存储回扫描缓冲区,并成为下一个要读取的字符。

val stdin : in_channel

Scanf 模块的标准输入概念。Scanning.stdin 是连接到 stdinScanf.Scanning.in_channel 格式化输入通道。

注意:在交互式系统中,当从 stdin 读取输入时,触发评估的新行字符是输入的一部分;因此,扫描规范必须正确跳过此额外的新行字符(例如,只需将 '\n' 添加为格式字符串的最后一个字符)。

type file_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 格式化输入通道的字符源的名称。