简介

作用:使用vsnprintf()用于向一个字符串缓冲区打印格式化字符串,且可以限定打印的格式化字符串的最大长度。

此函数需要C99或者C++11及以上版本才能支持。

int vsnprintf (char * sbuf, size_t n, const char * format, va_list arg );

参数sbuf:用于缓存格式化字符串结果的字符数组

参数n:限定最多打印到缓冲区sbuf的字符的个数为n-1个,因为vsnprintf还要在结果的末尾追加\0。如果格式化字符串长度大于n-1,则多出的部分被丢弃。如果格式化字符串长度小于等于n-1,则可以格式化的字符串完整打印到缓冲区sbuf。一般这里传递的值就是sbuf缓冲区的长度。

参数format:格式化限定字符串

参数arg:可变长度参数列表

返回:成功打印到sbuf中的字符的个数,不包括末尾追加的\0。如果格式化解析失败,则返回负数。

例程

#include <stdio.h>
#include <string.h>
#include <stdarg.h>#define SBUF_SIZE 128
char sbuf[SBUF_SIZE];void MyPrintF( const char * format, ... )
{va_list args;va_start (args, format);vsnprintf (sbuf,SBUF_SIZE,format, args);va_end (args);printf("%s",sbuf);
}int main()
{   MyPrintF("my name is %s,my age is %d\n","bob",18);return 0;
}

vsnprintf函数使用相关推荐

  1. vsnprintf函数用法

    vsnprintf函数 头文件:#include  <stdarg.h> 函数原型:int vsnprintf(char *str, size_t size, const char *fo ...

  2. C中snprintf与vsnprintf函数

    博客搬家,原地址:https://langzi989.github.io/2018/01/01/C中snprintf与vsnprintf函数/ 虽然snprintf函数在开发过程中比较常用,但是其中有 ...

  3. sprintf、vsprintf、sprintf_s、vsprintf_s、_snprintf、_vsnprintf、snprintf、vsnprintf 函数辨析

    看了题目中的几个函数名是不是有点头晕?为了防止以后总在这样的细节里纠缠不清,今天我们就来好好地辨析一下这几个函数的异同. 实验环境: Windows下使用VS2017 Linux下使用gcc4.9.4 ...

  4. c语言打印字符的函数参数,C语言格式化打印函数vsnprintf()的实现

    Linux内核的格式化打印函数是printk(),它与printf()函数是类似的,都是根据格式字符串把可变参数列表转化成字符序列,然后输出到控制台. printf()是打印到标准输出stdout. ...

  5. C语言:跨平台环境下使用snprintf,vsnprintf系列函数要注意返回值的问题

    标准C语言函数snprintf,vsnprintf系列函数可以向指定的缓冲区输出格式化打印的字符串. 如果指定的缓存区足够大,那么调用正常,返回值就是写入缓存区的字节长度(不含结尾'\0') 那么缓存 ...

  6. vsnprintf的作用和使用

      vsnprintf用来将可变参数格式化输出到一个字符数组,常和va_start和va_end一起使用. vsnprintf函数介绍 函数功能:将可变参数格式化输出到一个字符数组. 注意: 在lin ...

  7. linux c语言内核函数手册,Linux C函数实例速查手册

    函数学习目录: 第1章 初级I/O函数 1.1 close函数:关闭已经打开的文件 1.2 creat函数:创建一个文件 1.3 dup函数:复制文件描述符 1.4 dup2函数:复制文件描述符到指定 ...

  8. va_start函数的使用

    /*  基本过程:       va_list arglist; //声明一个变量来转换参数列表 va_start(arglist,format); //初始化变量 va_end(arglist); ...

  9. C++ Reference: Standard C++ Library reference: C Library: cstdio: vsnprintf

    C++官网参考链接:https://cplusplus.com/reference/cstdio/vsnprintf/ 函数  <cstdio> vsnprintf int vsnprin ...

最新文章

  1. Android程序如何在代码中改变图片原有的颜色
  2. c# bitmap 去除噪点_黑头怎么去除最有效用盐处理的方法推荐
  3. 调用支付jsapi缺少参数appid_服务商模式下的小程序微信支付
  4. Android切换泰语,Android应用内切换语言
  5. k型热电偶材料_电热汇分享热电偶测温元件符号、标准及参数详解
  6. Windows2003 企业版 + Sql Server2005手工调整数据库服务器内存
  7. gin--简单的登录界面的实现
  8. python数据框追加_将行追加到Pandas数据框将添加0列
  9. iocomp iPlot使用说明15 Adding Data添加数据
  10. ie工具internet选项安全自定义级别java_activex控件被禁止怎么办
  11. Java学习day07-认识类和对象(单元测试Test)
  12. 最小二乘法曲线拟合(代码注释)
  13. 华为云、百度、斗鱼的技术专家聚到一起在探讨什么?
  14. win10查看计算机管理员,肿么查看win10微软账户是否为管理员账户
  15. 978_使用emacs lisp安装emacs插件
  16. Vue - 实现复制内容到剪贴板(一键复制)
  17. Linux下wps文档结构图,wps文字的文档结构图
  18. (附源码)springboot工作计划管理软件 毕业设计 181638
  19. 【回归预测-FNN预测】基于蝙蝠算法优化前馈网络实现数据回归预测附Matlab代码
  20. 图像的基本操作--反转、放大等

热门文章

  1. 全排列 公式手动实现
  2. 拍照翻译成中文的软件在哪找,三个办法教你完成拍照取词翻译
  3. php apt-get镜像,Ubuntu使用apt-get更新慢解决方法修改镜像
  4. Python爬取某平台付费文档,确定不来薅羊毛吗?
  5. webpack构建内存溢出解决方案
  6. 计算机精准教学,“精准教学”一定要平板电脑?看看他们如何因陋就简,揭开精准教学的神秘面纱...
  7. Python:高级聊天机器人
  8. 软件开发(一)——软件开发的基础思考
  9. explan各项说明
  10. onload事件、onblur事件、onchange事件、onsubmit事件举例