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


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

Следующее применяется к любому scanf семейство функций, в том числе безопасные версии, например scanf_s.

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

Символы типа для функций scanf

Знак

Ожидаемый тип ввода

Тип аргумента

Аргумент size в безопасной версией?

c

Символ.При использовании с scanf функции, символ единый-байта; при использовании с wscanf функции, определяющие расширенный символ.Пробелы, обычно пропущены при чтении c указывает.Чтобы прочитать следующий символ, используйте единый-байта non-бел-космической %1s; , если считывается следующий символ, используйте расширенный non-бел-космической %1ws.

Указатель на char при использовании с scanf указатель на функцию wchar_t при использовании с wscanf функции.

Обязательный.Размер не включает пространство для признака конца null.

C

Противоположный знак размера.При использовании с scanf функции, определяющие расширенный символ. при использовании с wscanf функции, символ единый-байта.Пробелы, обычно пропущены при чтении C указывает.Чтобы прочитать следующий символ, используйте единый-байта non-бел-космической %1s; , если считывается следующий символ, используйте расширенный non-бел-космической %1ws.

Указатель на wchar_t при использовании с scanf указатель на функцию char при использовании с wscanf функции.

Обязательный.Аргумент size не содержит пространство для признака конца null.

d

Десятичное целое число.

Указатель на int.

Нет.

i

Параметр типа Integer (целое число).Hex если входная строка начинается с "0x" или "0X", то восьмиштырьково если строка начинается с "0"; в противном случае десятичное число.

Указатель на int.

Нет.

o

Восьмеричное целое число.

Указатель на int.

Нет.

u

Десятичное целое число без знака.

Указатель на unsignedint.

Нет.

x

Шестнадцатеричное целое число.

Указатель на int.

Нет.

e, E, f, g, G

Значение с плавающей запятой, состоящий из необязательного знака (плюс или минус), ряда один или несколько десятичных разрядов, содержащие десятичную запятую и необязательную степени ("e" или "e") и, при необходимости, значение знакового целого числа.

Указатель на float.

Нет.

n

Без ввода для чтения из потока или буфера.

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

Нет.

s

Строка, до первого пробелов (пробелы, символы табуляции или перевода строки).Для считывания строки, разделенные пробелами, не используйте набора квадратных скобк ([ ]), как описано в разделе coding the script спецификация ширины scanf.

При использовании с scanf функции, обозначают массив символов единый-байта; при использовании с wscanf функции, обозначают массив расширенных символов.В любом случае массив символов, должен быть достаточным для завершения для поля ввода и нуль-символ, который автоматически добавляется.

Обязательный.Размер включает пространство для признака конца null.

S

Символьная строка Противоположн-изменить размера до первого пробелов (пробелы, символы табуляции или перевода строки).Для считывания строки, разделенные пробелами, не используйте набора квадратных скобк ([ ]), как описано в разделе coding the script спецификация ширины scanf.

При использовании с scanfфункции, обозначают массив расширенных символов; при использовании с wscanfфункции, обозначают массив единый-байт-знака.В любом случае массив символов, должен быть достаточным для завершения для поля ввода и нуль-символ, который автоматически добавляется.

Обязательный.Размер включает пространство для признака конца null.

a и A описатели (см. символы поля типа printfнедоступны с) scanf.

Аргументы размера, если это требуется, должны быть переданы в списке параметров сразу после аргумента, они применяются.Например, следующий код:

char string1[11], string2[9];
scanf("%10s %8s", string1, 11, string2, 9);

считывает строку с максимальной длиной в 10 string1и строки с максимальной длиной 8 string2.Размер буфера должен быть хотя бы один больше, чем спецификации ширины поскольку пробел должна быть зарезервирована для признака конца null.

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

Чтения символ как

Используйте эту функцию

с этими описателями формата

один байт

Функции scanf

c, hc или hC

один байт

Функции wscanf

C, hc или hC

широко

Функции wscanf

c, lc или lC

широко

Функции scanf

C, lc или lC

Просматривать строки с scanf функции и wscanf функции, использующие выше таблицу с тип-описателями формата s и S вместо c и C.

См. также

Ссылки

scanf, _scanf_l, wscanf, _wscanf_l