文法:
#include <cstdarg> #include <cstdio> int vscanf( char *フォーマット, va_list 引数ポインタ ); int vfscanf( FILE *ストリーム, const char *フォーマット, va_list 引数ポインタ ); int vsscanf( char *バッファ, char *フォーマット, va_list 引数ポインタ );
これらの関数は、scanf(), fscanf(), sscanf()と非常によく似ています。異なる点は、引数リストが、引数リストへのポインタに変わっている点です。va_listはcstdargで定義されていて、va_argでも使用することができます。
サンプル:
int scanf_( char *fmt, ... ) { va_list args; va_start( args, fmt ); int r = vscanf(frmt, args); scanf("%*[^\n]"), getchar(); //空のバッファ va_end( args ); return r; }