C:vprintf/vfprintf/vdprintf/vsprintf/vsnprintf,对可变参数的支持

对于需要使用可变参数的函数,C语言提供了如下一组函数,用于将可变参数格式化后进行输出:

//对等于printf,将格式化后的字符串输出到屏幕

int vprintf(const char *format, va_list ap);

//对等于fprintf,将格式化后的字符串输出到文件
int vfprintf(FILE *stream, const char *format, va_list ap);

//对等于write,将格式化后的字符串输出到文件
int vdprintf(int fd, const char *format, va_list ap);

//对等于sprintf,将格式化后的字符串输出到字符串,不做字符串长度的有效性检查
int vsprintf(char *str, const char *format, va_list ap);

//对等于snprintf,将格式化后的字符串输出到字符串,做字符串长度的有效性检查
int vsnprintf(char *str, size_t size, const char *format, va_list ap);

这些函数声明于头文件,通过下例对其使用方法进行说明:

#include 
#include 

void pOut(const char *format, ...)
{
	va_list argp;            
	va_start(argp, format);    //通过va_list捕获所有可变参数
	printf("%s:", "pOut");     //输出前置打印字符串
	vprintf(format, argp);     //将可变参数格式化输出
	printf("%s", "\n");        //输出回车
	return;
}

int main()
{
	pOut("hello world");
	pOut("bye");
	return 0;
}

运行程序输出:

pOut:hello world
pOut:bye

你可能感兴趣的:(C,c语言)