vsnprintf函数
头文件:#include <stdarg.h>
函数原型:int vsnprintf(char *str, size_t size, const char *format, va_list ap);
函数说明:将可变参数格式化输出到一个字符数组
参数:str输出到的数组,size指定大小,防止越界,format格式化参数,ap可变参数列表函数用法
举例:
#include <stdio.h>
#include <stdarg.h>
void test(const char * format, ...);
int main(void)
{
test("%d_%s", 6, "abc");
return 0;
}
void test(const char * format, ...)
{
char buf[4069];
va_list list;
va_start(list, format);
vsnprintf(buf, 4069, format, list);
va_end(list);
printf("%s\n", buf);
}
输出结果为:6_abc
vfprintf()函数
头文件:#include <stdarg.h>
函数原型: int
vfprintf(FILE *stream, const char *format, va_list arg);
函数说明:fprintf()会根据参数format字符串来转换并格式化数据,然后将结果输出到参数stream指定的文件中,直到出现字符串结束(‘\0’)为止。
C语言printf家族函数的成员:
#include <stdio.h>
int printf(const char *format, ...); //输出到标准输出int fprintf(FILE *stream, const char *format, ...); //输出到文件int sprintf(char *str, const char *format, ...); //输出到字符串str中int snprintf(char *str, size_t size, const char *format, ...);
//按size大小输出到字符串str中 以下函数功能与上面的一一对应相同,只是在函数调用时,把上面的...对应的一个个变量用va_list调用所替代。在函数调用前ap要通过va_start()宏来动态获取。
#include <stdarg.h>
int vprintf(const char *format, va_list ap);int vfprintf(FILE *stream, const char *format, va_list ap);
int vsprintf(char *str, const char *format, va_list ap);int vsnprintf(char *str, size_t size, const char *format, va_list ap);
本文详细介绍了C语言中printf家族的各个成员,包括printf、fprintf、sprintf和snprintf等函数的功能与使用方法,并展示了如何利用vprintf、vfprintf、vsprintf及vsnprintf等函数进行可变参数列表的格式化输出。
160

被折叠的 条评论
为什么被折叠?



