printf 传参问题
想实现一个接口,就是将printf的参数传入到另外一个函数中,在另外的函数中进行打印
例如:我想打印printf("hello %d", a); 我想将 "hell %d" 和 a传入到一个接口print()里面,然后在print里面封装printf,print用不定参数传参print(const char *format),可是这样就存在一个问题,如何将传给print的不定参数传给printf呢?请教了
[解决办法]
1 借助vprintf 实现,vprintf系列格式化字符串的函数由系统提供,
可用于编程人员封装自己的I/O函数。
#include <stdio.h>#include <stdarg.h>int print(const char * format, ...){ va_list arg_ptr; va_start(arg_ptr, format); int nBytes = vprintf(format, arg_ptr); va_end(arg_ptr); return nBytes;}int main(void){ char *p = "hello c! \n"; print("%s", p); return 0;}