一、_vsnprintf,c语言库函数之一,属于可变参数。用于向字符串中打印数据、数据格式用户自定义。

函数原型: int vsnprintf(char* str,size_t size,const char* format,va_list ap);

参数说明: char* str[out] ,把生成的格式化的字符串放入此变量。

size_t [in] ,str可接受的最大字节数,防止产生数组越界。

const char* format[in],指定输出格式的字符串,他决定了你需要提供的可变参数的类型、个数和顺序。

va_list ap[in],va_list变量,va:Variable-argument:可变参数。

功能: 将可变参数格式化到一个字符数组。对比与vsprintf,增加了size限制,防止内存溢出。

但是格式化完成后没有加字符串结束符\0,所以要根据函数返回值,然后给字符串加字符结束符。

具体用法:需要先建立指向参数的指针va_list first; 然后就可以格式化,结束后要回收va_end(first);

void Display(const char* format,...)

{

char szBuffer[255] = {0};

va_list First;

va_start(First,format);

int nLen = _vsnprintf(szBuffer,sizeof(szBuffer),format,First);

va_end(First);

if (nLen)

{

szBuffer[nLen] = '\0';

}

printf("%s\n",szBuffer);

}

int _tmain()

{

const char* pData1 = "this";

const char* pData2 = "is";

const char* pData3 = "test";

Display("%s %s %s",pData1,pData2,pData3);

getchar();

return 0;

}

调用成功返回字符串的大小,失败返回负数。

二、第二个是_snprintf,将可变个参数(。。。)按照format格式化成字符串,然后复制到str中。

int _snprintf(char* Str,size_t size, const char* format,...);

如果格式化后的字符串长度小于size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符。

如果格式化后的字符串长度>=size,则只将其中的(size - 1)个字符复制到str中,并给其后添加一个字符串结束符。返回值为格式化后的字符串长度。

这个函数的可操作性就比较强。

若成功则返回欲写入的字符串长度,若出错则返回负值。

char szBuffer[1024] = {0};

SYSTEMTIME cTime;

::GetLocalTime(&cTime);

int nLen = _snprintf(szBuffer,sizeof(szBuffer),"%.4d %.2d %.2d ---%.2d:%.2d:%.2d\n",

cTime.wYear,cTime.wMonth,cTime.wDay,cTime.wHour,cTime.wMinute,cTime.wSecond);

if (nLen)

{

printf("%s\n",szBuffer);

}

这个函数还是比较省心的。暂时就先用这两个函数。

c语言 printf 库函数,关于printf的几个C语言库函数相关推荐

  1. c语言设置制表符参数,printf()函数的参数和制表符

    · 参数 · 控制符 · 转义序列 printf("这是第们学习的第4课"); printf("12345\n6789"); \n  换行 \r  回车键 \b ...

  2. C语言scanf怎么输入字母,C语言scanf输入格式printf输出格式

    1. 转化说明符 %a(%A)浮点数,十六进制数字和p-(P-)表示法(C99)%c个字符 %d个有符号十进制整数 %f浮点数(包括浮点数和doulbe)%e(%E)浮点指数输出[e-(E-)表示法] ...

  3. c语言中 printf(quot;nquot;),关于C语言 printf(quot;%d\nquot;,printf(quot;%dquot;,printf(quot;%dquot;...

    luokaiwei19824级被浏览104次2013.10.11 检举 #include int main(){ int i=43; printf("%d\n",printf(&q ...

  4. c打印无符号整数_C语言基础知识:printf的输出格式,C/C++语言编程讲解

    C语言基础知识:printf的输出格式 printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的类型.例如,在打印整数是使用%d符号,在打印字符是用%c 符号.这些符号被称为 ...

  5. C语言 vprintf 函数和 printf 函数区别 - C语言零基础入门教程

    目录 一.vprintf 函数和 printf 函数声明简介 1.printf 函数声明 2.vprintf 函数声明 二.vprintf 函数和 printf 函数使用 三.猜你喜欢 零基础 C/C ...

  6. android studio如何设置输出值的小数点_C语言基础知识:printf的输出格式,C/C++语言编程讲解...

    C语言基础知识:printf的输出格式 printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的类型.例如,在打印整数是使用%d符号,在打印字符是用%c 符号.这些符号被称为 ...

  7. 详解c语言main函数、printf函数、scanf函数与va家族

    C语言入门与提升(1)--详解c语言main函数.printf函数与scanf函数,与va家族 前言: 为什么要学习C语言呢?C语言作为最古老的语言之一,走过了半个多世纪的风风雨雨,至今仍然长盛不衰, ...

  8. C语言中耳熟能详的printf与scanf

    没有什么比时间更有说服力了,因为时间无需通知我们就可以改变一切了.---余华<活着> 大家好,今天给大家分享的是C语言中的scanf与printf函数,一提起这两个函数,大家可能觉得这不就 ...

  9. c语言printf啥意思,printf在c语言中的意思是什么呢

    在C语言中printf( )是专门用于输出的2113语句.5261 用法如下:1.printf()函数是格式化输出4102函数,一般用于向标准输出设备按1653规定格式输出信息.2.printf()函 ...

  10. c语言中的printf怎么用,printf怎么用(c语言printf用法)

    printf怎么用(c语言printf用法) 2020-07-28 02:35:57 共10个回答 printf(pbuff[i]);修改为printf("%s",pbuff[i]);printf(p ...

最新文章

  1. 【BZOJ】2099: [Usaco2010 Dec]Letter 恐吓信
  2. 《JAVA与模式》之命令模式
  3. LruCache原理
  4. 让你的AI绿起来,艾伦研究所提出深度学习效率评估标准Green AI
  5. 最大字段和_使对易失性字段的操作原子化
  6. python好学吗 老程序员-今天面试了一个34岁大龄程序员,有感而发
  7. mysql函数时分秒转换_mysql函数 秒转换成时分秒
  8. linux中多线程解析
  9. mysql和web文件夹_Linux使用记录---自动备份MySQL和web文件夹到windows共享路径
  10. 作者:曾嘉(1980-),男,博士,华为诺亚方舟实验室高级研究员和项目经理。...
  11. 转载 Div+css浏览器兼容实例分析(一)
  12. 执​行​o​r​a​c​l​e​函​数​的​四​种​方​法
  13. 个人从源码理解JIT模式下angular编译AppModule的过程
  14. 方法同时使用微服务调用文件上传方法以及调用另一微服务的方法时报错failed to parse multipart servlet Request
  15. zabbix3 mysql8.0_Zabbix3的离线安装
  16. 新中大财务软件V5.08安装
  17. 从“规模叙事”迈向“利润叙事”,中国制造背后的“天狼”动力
  18. 纯前端播放文件流视频并预览并截取视频第一帧
  19. [转载]使用 Abbot 框架自动化测试 Eclipse 插件的用户界面,第 2 部分
  20. 水质检测 — TDS模块

热门文章

  1. Pb (数据存储单位)
  2. IntelliJ IDEA中文乱码问题汇总
  3. 【Python】使用Scrapy 网络爬虫框架Demo
  4. Java任书璐/9.23/9.24
  5. php工程师的前景,为何说做PHP软件工程师前景非常好
  6. Codeforces Round #635 (Div. 2)(A~D)题解
  7. 向量转置的怎么求导_机器学习中的向量求导和矩阵求导
  8. C语言 ascii码 0x30
  9. 小米手机收藏的短信在哪里,怎么删除收藏短信
  10. Vue实现刮刮乐项目