Описание функций Си

       

Vsscanf



     vsscanf

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

Синтаксис #include

int vsscanf(const char *buffer, const char *format, va_list arglist);

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

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

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

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

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

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

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

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

Смотрите также

Пример:

#include

#include

char buffer[80] = "30 90.0 abc";

int vssf(char *fmt, ...); { va_list argptr; int cnt; fflash(stdin); va_start(argptr,format); cnt = vsscanf(buffer,fmt,argptr); va_end(argptr); return cnt; }

int main(void) { int inumber; float fnumber; char string[80]; vssf("%d %f %s",&inumber,&fnumber,string); printf("%d %f %s",inumber,fnumber,string); return 0; }



Содержание раздела