vscanf, vwscanf

De RAD Studio
Aller à : navigation, rechercher

Remonter à stdio.h - Index

Header File

stdio.h

Category

Console I/O Routines

Prototype

int vscanf(const char *format, va_list arglist);

int vwscanf(const wchar_t *format, va_list arglist);

Description

Scans and formats input from stdin.

Remarque :  Do not use this function in Win32 GUI applications.

The v...scanf functions are known as alternate entry points for the ...scanf functions. They behave exactly like their ...scanf counterparts, but they accept a pointer to a list of arguments instead of an argument list.

Remarque :  For details on format specifiers, see scanf Format Specifiers.

vscanf scans a series of input fields, one character at a time, 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|vscanf] stores the formatted input at an address passed to it as an argument following format. 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.

Example

#include <stdio.h>
#include <stdarg.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;
}

Portability

POSIX Win32 ANSI C ANSI C++

+

+

+

See Also