14.2.12 Синтаксис преобразования входных данных
Шаблонная строка scanf — это строка, содержащая обычные многобайтовые символы, перемежаемые спецификациями преобразования, которые начинаются с ‘%’.
Любой пробельный символ в шаблоне приводит к чтению и отбрасыванию любого количества пробельных символов в потоке ввода. Пробельные символы, которые сопоставляются, не обязательно должны быть точно такими же, как пробельные символы, которые появляются в строке шаблона. Например, напишите ‘ , ’ в шаблоне, чтобы распознать запятую с необязательными пробелами перед и после нее.
Другие символы в строке шаблона, которые не являются частью спецификаций преобразования, должны точно совпадать с символами в потоке ввода; если это не так, происходит неудача сопоставления.
Спецификации преобразования в строке шаблона scanf имеют общий вид:
% flags width type conversion
Более подробно, спецификация преобразования ввода состоит из начального символа ‘%’, за которым следуют последовательно:
- Необязательный флаг-символ ‘*’, который указывает на игнорирование текста, считанного для этой спецификации. Когда
scanfнаходит спецификацию преобразования, использующую этот флаг, она считывает входные данные, как указано остальной частью спецификации преобразования, но отбрасывает эти данные, не возвращает никакого значения и не увеличивает счет успешных присваиваний. - Необязательное десятичное целое число, которое определяет максимальную ширину поля. Чтение символов из потока ввода прекращается либо при достижении этого максимума, либо при обнаружении несовпадающего символа, в зависимости от того, что произойдет раньше. Большинство преобразований отбрасывают начальные пробельные символы, и эти отброшенные символы не учитываются в максимальной ширине поля. Преобразования, которые не отбрасывают начальные пробельные символы, документированы явно.
- Необязательный модификатор типа символа. Этот символ игнорируется функцией Octave
scanf, но распознается для обеспечения совместимости с языком Cscanf. - Символ, определяющий выполняемое преобразование.
Точные разрешенные опции и способ их интерпретации различаются в зависимости от разных спецификаторов преобразования. См. описания отдельных преобразований в Таблице преобразований ввода для получения информации о конкретных разрешенных опциях.
© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v7.2.0/Input-Conversion-Syntax.html