====== vsscanf ======
int vsscanf(const char *restrict s, const char *restrict format, va_list arg);
==== description of vsscanf ====
The vscanf(), vfscanf(), and vsscanf() functions shall be equivalent to the scanf(), fscanf(), and sscanf() functions, respectively, except that instead of being called with a variable number of arguments, they are called with an argument list as defined in the header. These functions shall not invoke the va_end macro. As these functions invoke the va_arg macro, the value of ap after the return is unspecified.
#include
#include
char buffer[80] = "6 7.0 hoopy";
int my_vfscanf(char *fmt, ...)
{
va_list argptr;
int cnt;
fflush(stdin);
va_start(argptr, fmt);
cnt = vsscanf(buffer, fmt, argptr);
va_end(argptr);
return(cnt);
}
int main(void)
{
int inumber;
float fnumber;
char string[80];
my_vfscanf("%d %f %s", &inumber, &fnumber, string);
printf("%d * %f = %s\n", inumber, fnumber, string);
return 0;
}
===== output of vsscanf c example =====
6 * 7.000000 = hoopy