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 }
原文地址:https://www.cnblogs.com/xiaochi/p/8504088.html