109.vprintf vfprintf vscanf vfscanf
- vprintf
1 //输出到屏幕 2 int POUT(char *str, ...) 3 { 4 va_list arg_p=NULL; 5 //读取 6 va_start(arg_p, str); 7 //接受可变参数 8 int n = vprintf(str,arg_p); 9 va_end(arg_p); 10 return n; 11 }
-
1 //测试函数 2 void main() 3 { 4 POUTX("%s %d %d %s", "123", 1,1900,"234"); 5 getchar(); 6 }
- vfprintf
1 //输出到文件 2 int POUTX(char *str, ...) 3 { 4 va_list arg_p = NULL; 5 //读取 6 va_start(arg_p, str); 7 //接受可变参数在一个文件,保存参数不确定,类型不确定的情况 8 int n = vfprintf(stdout,str, arg_p); 9 va_end(arg_p); 10 return n; 11 }
- vscanf
1 //从屏幕接收数据 2 int PIN(char *str,...) 3 { 4 5 va_list arg_p = NULL; 6 va_start(arg_p, str);//读取 7 int n =vscanf(str, arg_p);//接受可变参数 8 va_end(arg_p); 9 return n; 10 }
- vfscanf
1 //从文件接收数据 2 int PINX(char *str, ...) 3 { 4 5 va_list arg_p = NULL; 6 va_start(arg_p, str);//读取 7 int n = vfscanf(stdin,str, arg_p);//接受可变参数 8 va_end(arg_p); 9 return n; 10 }
1 //测试函数 2 void main() 3 { 4 char str[20]; 5 int n; 6 PINX("%s%d", str, &n); 7 printf("str=%s,n=%d", str, n); 8 system("pause"); 9 }