C/C++ vprintf函数

最后更新于:2020-11-01 17:21:57

一.vprintf函数简介

vprintf函数声明如下:

/*
*描述:将可变参数列表的格式化数据打印到stdout
*参数:
*   format  包含格式字符串的C字符串,其格式字符串与printf中的格式相同。
*
*   arg  标识使用va_start初始化的变量参数列表的值。
         va_list是在<cstdarg>中定义的特殊类型。
*   
*返回值:
*   成功后,返回写入的字符总数。
*   如果发生写入错误,则会设置错误指示符(ferror)并返回负数。
*   如果在编写宽字符时发生多字节字符编码错误,则将errno设置为EILSEQ,并返回负数;
*/
int vprintf ( const char * format, va_list arg );

二.vprintf函数使用

vprintf函数一般需要配合va_startva_end函数配合使用,vprintf函数使用示例如下:

/************************************************************************/
/*@文件名      : vprintf/va_start/va_end.cpp                                                       
/*@日  期      : 2020/10/14 21:52
/*@作  者      : 猿说编程 
/*@公众号      : 猿说编程
/*@博客        : www.shuopython.com
/*@描述        : C语言教程 - vprintf/va_start/va_end
/************************************************************************/
/* vprintf example */
#include <stdio.h>
#include <stdarg.h>

void vprintf_func ( const char * format, ... )
{
  va_list args;
  va_start (args, format);
  vprintf (format, args);
  va_end (args);
}

int main ()
{
   vprintf_func ("Call with %d variable argument.\n",1);
   vprintf_func ("Call with %d variable %s.\n",2,"arguments");

   return 0;
}

/*
输出:
Call with 1 variable argument.
Call with 2 variable arguments.
*/


1. 三目运算符

2. 逗号表达式

3. char和wchar_t相互转换

4. wprintf输出中文乱码

5. unicode和多字节区别

6. Debug和_DEBUG区别

7. Debug和Release区别

8. _WIN32/WIN32/_WIN64/WIN64区别

9. memcpy/strcpy/strcpy_s区别

10. NaN(Not a Number)

11. INF:infinite)



转载请注明: 猿说编程 »C/C++教程 »vprintf函数

赞赏

微信赞赏支付宝赞赏