vprintf, vfprintf和 vsprintf
语法:
1 2 3 4 5 |
?? #include <stdarg.h> ?? #include <stdio.h> ?? 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在STDARG.H中定义,并且也可以被va_arg()使用. 例如:
1 2 3 4 5 6 7 8 9 10 |
??? 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 ); ???? } |