C ++ vscanf () - Стандартная библиотека C ++

Функция vscanf () в C ++ используется для чтения данных из stdin.

Функция vscanf () определена в заголовочном файле.

vscanf () прототип

 int vscanf (const char * format, va_list vlist);

Функция vscanf () считывает данные из stdin и сохраняет значения в соответствующих местах, как определено vlist.

vscanf () Параметры

  • формат: указатель на строку символов с завершающим нулем, которая указывает, как читать ввод. Он состоит из спецификаторов формата, начинающихся с%.
    Строка формата состоит из следующих частей:
    • Символы без пробелов, кроме%, каждый из которых использует один идентичный символ из входного потока. Это может привести к сбою функции, если следующий символ в потоке не окажется равным.
    • Пробельный символ: все следующие друг за другом пробельные символы рассматриваются как один пробельный символ. Далее, ' n', ' t' и '' считаются одинаковыми.
    • Спецификация преобразования: имеет следующий формат:
      • Начальный символ%, указывающий начало
      • Необязательный *, называемый символом подавления присваивания. Если этот символ присутствует, vscanf () не присваивает результат ни одному принимающему аргументу.
      • Необязательное положительное целое число, указывающее максимальную ширину поля. Он определяет максимальное количество символов, которое разрешено использовать vscanf () при выполнении преобразования, указанного в текущей спецификации преобразования.
      • Необязательный модификатор длины, определяющий размер принимающего аргумента.
      • Спецификатор формата преобразования.
    Спецификаторы формата
    Описатель формата Описание
    % Соответствует буквальному%
    c Соответствует одному или нескольким символам. Если ширина определена, точно соответствует ширине символов.
    s Соответствует последовательным непробельным символам. Если ширина определена, соответствует точно символам ширины или до тех пор, пока не будет найден первый пробел.
    (набор) Соответствует непустой последовательности символов из данного набора символов. Если присутствует в начале набора, то совпадают все символы, не входящие в набор.
    d Соответствует десятичному целому числу.
    я Соответствует целому числу.
    о Соответствует восьмеричному целому числу без знака.
    X или x Соответствует шестнадцатеричному целому числу без знака.
    ты Соответствует десятичному целому числу без знака.
    A или a, E или e, F или f, G или g Соответствует числу с плавающей запятой.
    п Возвращает количество прочитанных символов.
    п Соответствует последовательности символов, определенной реализацией, определяющей указатель.

    Итак, общий формат спецификатора формата:
     % (*) (ширина) (длина) спецификатор
  • vlist: список аргументов для получения входных данных.

vscanf () Возвращаемое значение

  • В случае успеха функция vscanf () возвращает количество успешно прочитанных аргументов.
  • В случае неудачи возвращается EOF.

Пример: как работает функция vscanf ()?

 #include #include void read( const char * format,… ) ( va_list args; va_start (args, format); vscanf (format, args); va_end (args); ) int main () ( float marks; char subj(50); printf("Enter subject's name and marks obtained: "); read(" %s %f", subj,&marks); printf("You scored %.2f in %s", marks, subj); return 0; )

Когда вы запустите программу, возможный результат будет:

 Введите имя предмета и полученные оценки: по математике 12 Вы набрали 12,00 по математике

Интересные статьи...