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
格式化輸入通道的字元來源名稱。