Функция Выполняет форматный ввод из стандартного потока
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.
Смотрите также fscanfscanfva_argva_endva_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;
}