14.2.12 Синтаксис преобразования ввода ¶
Шаблонная строка scanf — это строка, содержащая обычные многобайтовые символы, перемежающиеся со спецификациями преобразования, начинающимися с ‘%’.
Любой пробельный символ в шаблоне приводит к чтению и отбрасыванию любого количества пробельных символов в потоке ввода. Пробельные символы, которые сопоставляются, не обязательно должны быть точно такими же пробельными символами, которые появляются в строке шаблона. Например, напишите ‘ , ’ в шаблоне, чтобы распознать запятую с необязательными пробелами до и после неё.
Другие символы в строке шаблона, которые не являются частью спецификаций преобразования, должны точно совпадать с символами в потоке ввода; если это не так, происходит ошибка сопоставления.
Спецификации преобразования в строке шаблона scanf имеют общий вид:
% flags width type conversion
Более подробно, спецификация преобразования ввода состоит из начального символа ‘%’, за которым следуют последовательно:
- Необязательный флаговый символ ‘*’, который указывает на игнорирование текста, прочитанного для данной спецификации. Когда
scanfнаходит спецификацию преобразования с этим флагом, она читает входные данные, как указано остальной частью спецификации преобразования, но отбрасывает эти данные, не возвращает никакого значения и не увеличивает счёт успешных присваиваний. - Необязательное десятичное целое число, которое задаёт максимальную ширину поля. Чтение символов из потока ввода прекращается либо при достижении этого максимума, либо при обнаружении несовпадающего символа, что произойдёт раньше. Большинство преобразований отбрасывают начальные пробельные символы, и эти отброшенные символы не учитываются в максимальной ширине поля. Преобразования, которые не отбрасывают начальные пробельные символы, документированы явно.
- Необязательный символ модификатора типа. Этот символ игнорируется функцией
scanfOctave, но распознаётся для обеспечения совместимости с языком Cscanf. - Символ, который задаёт применяемое преобразование.
Точные разрешённые варианты и то, как они интерпретируются, различаются в зависимости от разных спецификаторов преобразования. См. описания отдельных преобразований в таблице преобразований ввода для получения информации о конкретных разрешённых вариантах.
© 1996–2023 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/v9.2.0/Input-Conversion-Syntax.html