vscanf
Scans and formats input from stdin.
Defined in header <stdarg.h>
Syntax
#include <stdarg.h>
int vscanf(const char *format, va_list arglist);
Portability
| DOS | UNIX | Windows | ANSI C | C++ only |
|---|---|---|---|---|
| ■ | ■ |
Remarks
Available on UNIX system V.
The v...scant functions are known as alternate entry points for the ...scant functions. They behave exactly like their ...scant counterparts, but they accept a pointer to a list of arguments instead of an argument list.
See scant for details
vscanf scans a series of input fields, one character at a time,
on format specifiers,
reading from stdin. Then each field is formatted according to a format specifier passed to vscanf in the format string pointed to by format. Finally, vscanf stores the formatted input at an address passed to it as an argument following/ormaf. There must be the same number of format specifiers and addresses as there are input fields.
vscanf might stop scanning a particular field before it reaches the normal end-of-field (whitespace) character, or it might terminate entirely, for a number of reasons. See scanf for a discussion of possible causes.
Return value
vscanf returns the number of input fields successfully scanned, converted, and stored; the return value does not include scanned fields that were not stored. If no fields were stored, the return value is 0.
If vscanf attempts to read at end-of-file, the return value is EOF.
See also
Example
#include <stdio.h>
#include <conio.h>
int vscnf(char *fmt, ...)
va_list argptr;
int cnt;
printf ("Enter an integer, a float, and a string (e.g., i,f,s,)\n");
va_start (argptr, fmt);
cnt = vscanf (fmt, argptr);
va_end(argptr) ;
return (cnt);
}
int main (void)
{
int inumber;
float fnumber ;
char string [80];
vscnf("%d, %f, %s", &inumber, &fnumber, string);
printf("%d%f %s\n", inumber, fnumber, string);
return 0;
}
Differences from modern implementations
Nothing recorded yet.
Modern references
These are search links, not yet checked by hand.
Stable link: /3.1/stdarg.h/vscanf/
· short form /3.1/vscanf/