打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
vsnprintf()函数 & vfprintf()函数
 https://blog.csdn.net/qq_37824129/article/details/78763286
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);



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C的可变参数
printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf,
Windows下C/C可变参数宏实现技巧
C,C++中使用可变参数(转)
字符串操作
实现自己的printf函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服