vscanf, vfscanf, vsscanf

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


语法:

    #include <cstdarg>
    #include <cstdio>
    int vscanf( char *format, va_list arg_ptr );
    int vfscanf( FILE *stream, const char *format, va_list arg_ptr );
    int vsscanf( char *buffer, char *format, va_list arg_ptr );

这些函数和 scanf(), fscanf() 和 sscanf()非常像。不同之处在于参数列表是一个指向参数链表的指针。 va_list 定义在 cstdarg, 同时被 c/other/va_arg 用到。例如:

     int scanf_( char *fmt, ... ) {
       va_list args;
       va_start( args, fmt );
       int r = vscanf(fmt, args);
       scanf("%*[^\n]"), getchar(); //Empty buffer
       va_end( args );
       return r;
     }