vsscanf()

Считать ввод и строки (varargs)

Прототип:

#include <stdio.h>
#include <stdarg.h>
int vsscanf( const char *in_string,
const char *format,
va_list arg );

Аргументы:

in_string
Строка, из которой будет происходить считывание.
format
Строка, характеризующая формат входной информации. Она определяет какие дополнительные аргументы следует передать функции. Дополнительная информация о формате параметра указана на странице scanf().
arg
Cписок аргументов переменной длины для дополнительных аргументов, который должен быть инициализирован макросом va_start().

Библиотека:

libc

Описание:

Функция vsscanf() считывает данные в соответствии с format из строки in_string.

Функция vsscanf() является “varargs” версией функции sscanf().

Возвращаемое значение:

Количество входных аргументов, значения которых были успешно считаны и записаны, или EOF если был достигнут конец входного потока до окончания считывания всех значений.

Примеры:

#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
void sfind( char *string, char *format, ... )
{
va_list arglist;
va_start( arglist, format );
vsscanf( string, format, arglist );
va_end( arglist );
}
int main( void )
{
int day, year;
char weekday[10], month[12];
sfind( "Monday June 28 1999", "%s %s %d %d", weekday, month, &day, &year );
printf( "\n%s, %s %d, %d\n", weekday, month, day, year );
return (EXIT_SUCCESS);
}

Классификация:

ANSI, POSIX 1003.1

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Смотри ниже
В потоке
Да

Предостережения:

Функция безопасна для вызова в обработчике сигналов, если аргументы не числа с плавающей точкой.

Тематические ссылки:

fscanf(), fwscanf(), scanf(), sscanf(), swscanf(), va_start(), vfscanf(), vfwscanf(), vscanf(), vswscanf(), vwscanf(), wscanf()




Предыдущий раздел: Описание API системной библиотеки