vprintf, vfprintf, and vsprintf

来自cppreference.com
< cpp‎ | io‎ | c

语法:

    #include <cstdarg>
    #include <cstdio>
    int vprintf( char *format, va_list arg_ptr );
    int vfprintf( FILE *stream, const char *format, va_list arg_ptr );
    int vsprintf( char *buffer, char *format, va_list arg_ptr );

这些函数和 printf(), fprintf() 和 sprintf() 非常像。不同之处在于参数列表是一个指向参数链表的指针。 va_list 定义在 cstdarg, 它同样被 c/other/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 );
     }