Module 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 не является безопасным для конкурентного доступа: его конкурентное использование может привести к произвольным значениям или исключениям.
- Начиная с версии 3.12
type scanbuf = in_channel
Тип буферов сканирования. Буфер сканирования — это источник, из которого функция форматированного ввода получает символы. Буфер сканирования хранит текущее состояние сканирования, а также функцию для получения следующего символа из ввода и буфер токенов для хранения строки, сопоставленной на данный момент.
Примечание: действие сканирования часто требует предварительно проверить один символ; если этот символ «заглядывания вперёд» не входит в прочитанный токен, он помещается обратно в буфер сканирования и становится следующим символом, который предстоит прочитать.
val stdin : in_channel
Понятие стандартного ввода для модуля Scanf. Scanning.stdin — это канал форматированного ввода Scanf.Scanning.in_channel, связанный с stdin.
Примечание: в интерактивной системе, когда ввод считывается из stdin, символ новой строки, запускающий вычисление, является частью ввода; поэтому спецификации сканирования должны корректно пропускать этот дополнительный символ новой строки (например, просто добавьте '\n' в качестве последнего символа строки формата).
- Начиная с версии 3.12
type file_name = string
Удобный псевдоним для обозначения имени файла.
- Начиная с версии 4.00
val open_in : file_name -> in_channel
Scanning.open_in fname возвращает канал форматированного ввода Scanf.Scanning.in_channel для буферизированного чтения файла fname в текстовом режиме.
Примечание: open_in возвращает канал форматированного ввода, эффективно считывающий символы крупными блоками; напротив, from_channel ниже возвращает каналы форматированного ввода, которые считывают по одному символу за раз, что значительно замедляет сканирование.
- Начиная с версии 3.12
val open_in_bin : file_name -> in_channel
Scanning.open_in_bin fname возвращает канал форматированного ввода Scanf.Scanning.in_channel для буферизированного чтения файла fname в двоичном режиме.
- Начиная с версии 3.12
val close_in : in_channel -> unit
Закрывает in_channel, связанный с заданным каналом форматированного ввода Scanf.Scanning.in_channel.
- Начиная с версии 3.12
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.
- Начиная с версии 3.09
© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/api/Scanf.Scanning.html