Vscanf
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.
Смотрите также
Пример:
#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; }