文法:
#include <cstdarg> #include <cstdio> int vprintf( char *フォーマット, va_list 引数ポインタ ); int vfprintf( FILE *ストリーム, const char *フォーマット, va_list 引数ポインタ ); int vsprintf( char *バッファ, char *フォーマット, va_list 引数ポインタ );
これらの関数は、printf(), fprintf(), sprintf()と非常によく似ています。違う点は、引数のリストが、引数のリストへのポインタに変わっている点です。va_listというものがcsdargで定義されています。va_argからも使用することができます。
サンプル:
void error( char *fmt, ... ) { va_list args; va_start( args, fmt ); fprintf( stderr, "Error: " ); vfprintf( stderr, fmt, args ); fprintf( stderr, "\n" ); va_end( args ); exit( 1 ); }