vscanf

Функция            Выполняет форматный ввод из стандартного потока
                   stdin.

Синтаксис          #include 
                   int vscanf(const char *format, va_list arglist);

Файл, содержащий   stdio.h
прототип

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

                   vscanf сканирует несколько полей ввода и читает
                   из stdin по одному символу в каждый момент време-
                   ни. Затем каждое поле форматируется в соответст-
                   вии с форматной спецификацией, передавемой в
                   vscanf в форматной строке, на которую указывает
                   format. И наконец, vscanf запоминает отформатиро-
                   ванный ввод по адресу, передаваемому ему в качес-
                   тве аргумента, следующего за format. Число специ-
                   фикаций формата и адресов должно быть равно числу
                   полей ввода.

                   Смотри в scanf описание информации, включенной в
                   спецификацию формата.

                   vscanf может закончить сканирование конкретного
                   поля, не достигнув нормального символа конца_поля
                   (пробел), или полностью прервать его по ряду при-
                   чин. Смотри в scanf описание различных случаев.

Возвращаемое       vscanf возвращает число входных полей, которые
значение           были сосканированы, преобразованы и запомнены.
                   Возвращаемое значение не включает сканированные
                   поля, которые не были запомнены. Если не было
                   сохранено ни одно поле, то возвращаемое значение
                   - 0.

                   Если vscanf пытается читать в конце_файла, то
                   возвращаемое значение EOF.

Переносимость      vscanf поддерживается на UNIX System V.

Смотрите также      fscanf scanf va_arg va_end va_start

Пример:

#include
#include

int vscnf(char *fmt, ...);
{
   va_list argptr;
   int cnt;
   printf("Введите целое, число с плавающей точкой, и строку: \n");
   va_start(argptr,format);
   cnt = vscanf(fmt,argptr);
   va_end(argptr);
   return(cnt);
}

int main(void)
{
   int inumber = 30;
   float fnumber = 90;
   char *string = "abc";
   vscnf("%d %f %s",&inumber,&fnumber,string);
   printf("%d %f %s",inumber,fnumber,string);
   return 0;
}