Поделиться через


Поля спецификации формата: функции и wscanf scanf

Здесь применяется ко всей информации scanf семейство функций, в том числе безопасные версии и описывает символы, используемые, чтобы сообщить scanf функции синтаксического анализа входной поток, например входной поток stdin для scanfв значений, которые будут вставляться в программные переменные.

Спецификация формата имеет следующую форму:

%[*[]ширина] [{H | l | ll | I64 | л}]тип

format аргумент определяет интерпретацию ввода и может содержать одно или несколько из следующих значений:

  • Пробелы. blank (" "); вкладка " (" \ t "); или перевода строки (" \ n ").Причины пробелов scanf читать, но не хранилище, все последовательные пробелы при вводе до следующего символа non-бел-космической.Один пробел в формате соответствует любому числу (включая 0) и пробелам сочетание на входе.

  • Non-бел-космической символы, за исключением символа процента (%).Причины знака non-бел-космической scanf читать, но не хранилище, соответствующий символ non-бел-космической.Если следующий символ во входном потоке не совпадут, метаданные scanf завершается.

  • Спецификации формата, представленные символом процента (%).Причины спецификации формата scanf чтение и преобразования символов на входе в значения заданного типа.Значение присвоено аргументу в списке аргументов.

Формат считать слева направо.Предполагается, что спецификации формата без символов последовательности символов во входном потоке. просматриваются, но не соответствующие символы сохраняются во входном потоке.Если символ во входном потоке конфликтует со спецификацией формата, то scanf завершается, а символ левый во входном потоке если не было считано.

Если первая спецификация формата обнаружена, значение первого поля ввода преобразовано в соответствии с этой спецификацией и хранятся в расположении, которое указывается первым argument.Вторая спецификация формата приводит к тому, что второе поле ввода для преобразования и сохранения в секунду argumentи т д до конца строки форматирования.

Поле ввода определено как все символы до первого пробелов (пробелы, символы табуляции, перевода строки), либо до первого символа, который не может быть преобразован в соответствии с спецификацией формата или до ширины поля (если указано), не достигнутся.Если указано слишком много аргументов для заданных спецификаций, вычисляются но игнорируются дополнительные аргументы.Результаты становятся непредсказуемыми, если недостаточно аргументов для спецификации формата.

Каждое поле спецификации формата один знак или номер знаменующ указанный параметр format.type символ, который отображается после последнего необязательное поле формата, указывающее, является ли поле ввод интерпретируется как символ, строки или числа.

Простейшая спецификация формата содержит только символ процента и a type знак (например, %s).Если знак процента (%), за которым следует знак, который не имеет смысла в виде символа формат-элемента управления, этот символ и следующие символы (до следующего символа процента) рассматриваются как обычная последовательность символов, то есть последовательность символов, которой должно соответствовать входным.Например, указать, что является символ процента быть вход, использование %%.

Звездочка (*поиск символа процента) отключает назначение следующего поля ввода, интерпретируется как поле указанного типа.Просматриваться но не сохраняется поле.

Безопасные версии (с _s суффикс) scanf семейство функций требует, чтобы параметр размера буфера был передан сразу после каждого параметра типа c" C" s" S OR [.Дополнительные сведения о безопасных версиях scanf семейство функций см. в разделах scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l.

См. также

Ссылки

спецификация ширины scanf

символы поля типа scanf

scanf, _scanf_l, wscanf, _wscanf_l

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l