这个函数定义如下

int sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format [,argument] ...
);

参数说明是这样的,第一个参数buffer是输出存储位置,第二个参数sizeOfBuffer是最大允许的字符数。

下面通过代码简单探究一下这个函数的应用,如果以后有更好的例子会持续更新

void FormatMyStr()
{// 注意这里规定的格式是后边的格式样式,即后边123则为%d,后边为"123"则为%s// 同理,规定占位及左右对其,保留位数也是规定后边参数的// 这里发现我sprintf_s设置的buff_size参数502一口气走下去会报堆栈溢出错误,这里官方的解释为最大允许的字符数,因此还是不要超过字符串的大小了,不然会出问题using namespace std;string strTest = "23";char strTest2[128] = { 0 };memset(strTest2, 0, 128);/* 赋值成为"123" */sprintf_s(strTest2, 128, "%d", 123);/* 将"23"复制过去 */sprintf_s(strTest2, 130, "%s", strTest.c_str());/* 占4位,右对齐。输出为"  23" */sprintf_s(strTest2, 128, "%4s", strTest.c_str());/* 占四位,右对齐,空的部分以0补位。输出为"0023"*/sprintf_s(strTest2,128, "%04s", strTest.c_str());/* 保留4位小数,没有四舍五入 */sprintf_s(strTest2, 128, "%.4f", 1.23456789);/* 占8位,保留4位小数,右对齐,想左对齐可以设置为%-8.4f */sprintf_s(strTest2, 128, "%8.4f", 1.23456789);/* 前面的操作会丢失之前存入的数据,这样可以保留strTest2之前的数据,注意不要颠倒顺序 */sprintf_s(strTest2, 128, "%s%s",strTest2,"23");/* 大写的右对齐16进制格式化 */sprintf_s(strTest2, 128, "%08X", "23");/* 通过这种方法可以取固定小数位,且支持四舍五入,但是想转回去好像又是一个麻烦事直接利用atof发现会出点问题并没有按想象中原样转过去。所以建议放大1000倍,用atoi转过去之后再还原过去吧。。 */stringstream ss;ss << setiosflags(ios::fixed) << setprecision(3) << 1.654887521;ss >> strTest;return;
}

sprintf_s的用法探究相关推荐

  1. 自适应宽度元素单行文本省略用法探究

    单行文本省略是现代网页设计中非常常用的技术,几乎每个站点都会用到.单行文本省略适用于显示摘要信息的场景,如列表标题.文章摘要等.在响应式开发中,自适应宽度元素单行文本省略容易失效不起作用,对网页开发这 ...

  2. sprinf sprintf_s 的用法

    函数功能: 将数据格式化输出到字符串 函数原型: int sprintf( char *buffer, const char *format [,argument] ... ) 注意这里的buffer ...

  3. js 方法的返回值 return 用法探究

    大致可以分为2种情况 第一种: 有返回值 (1) 返回true const testFn = ()=>{ return true } const result = testFn() consol ...

  4. mongodb 导出时间格式_MongoDB批量将时间戳转为通用日期格式示例代码 _ 蚂蚁视界...

    前言 光阴戳(timestamp),通常是一个字符序列,独一地标识某一刻的光阴.本文将具体先容MongoDB批量将光阴戳转为通用日期格局的相关内容,下面话不多说了,来一路看看具体的先容吧 1,官网提供 ...

  5. python中的with使用方法[探索5]

    with with是一种上下文管理协议,目的是从流程图中把try,except和finally关键字以及资源分配释放相关代码统统去掉,简化try-excepet-finally的处理流程 with确保 ...

  6. python自学-Python 应该怎么学?

    0714更新: 之前说过骆昊 (jackfrued) 的"从新手到大师"的百天之路!今天给大家分享一个主学习路线的干货图谱,话不多说,直接上图! 这个图谱是按照[专业基础][数据分 ...

  7. Mybatis中的 useGeneratedKeys

    useGeneratedKeys 用法探究 环境:mybatis 3.4.5 mysql 5.7 useGeneratedKeys的用法 官方文档 useGeneratedKeys (仅适用于 ins ...

  8. C/C++ bind函数应用详解

    文章目录 知识前导 头文件 bind介绍 bind函数: bind简述: placeholders 用法探究 单个参数 多个参数 成员函数 知识前导 头文件 #include <function ...

  9. 明明的随机数,程序的理解

    package huawei; import java.util.Set; import java.util.TreeSet; /* Description 给定n个随机整数,将其中所有的重复的整数( ...

最新文章

  1. 9.9学python靠谱吗-宅家亲测:9.9的python体验课,到底值不值?
  2. 产销对接行动倡议书-丰收节交易会·万祥军:贫困地区农品
  3. QT5.14 VS2019
  4. 我的世界手机版java安装失败_我的世界中国版JAVA路径错误的解决方法分享
  5. nobelking 3 js 数字和数字相加 字符串连接 数字和字符串连接1
  6. 图鸭科技重金揽才-深度学习优化研究员
  7. micropython和python区别-MicroPython入坑记(三)板子上的Python到底有多快?
  8. Java知多少(84)图形界面之布局设计
  9. springboot实现web文件上传,下载demo(附带demo链接)
  10. C++静态库与动态库的区别
  11. 【Python】数据处理之One-Hot编码
  12. 【Tableau server 8.0】Tableau server 考试真题回顾总结
  13. Back Channel笔记
  14. 小程序提示 网络异常 Network Anomalies
  15. web前端CSS---关于text-align设置为justify的相关内容
  16. 基于 NVIDIA GPU 和 RAPIDS 加速 Spark 3.0
  17. xcode更新一直失败的解决办法
  18. 在位6年,谷歌GO语言负责人离职!曾带MongoDB、Docker走向辉煌
  19. 移植华为LiteOS
  20. VMware虚拟机不能全屏的解决方法

热门文章

  1. 【HMS Core】运动健康服务查询步数,卡路里,距离,中高强度接口,没有返回创建时间
  2. 上班时间偷偷搞副业被抓,程序员惨遭解雇,还要退还所有工资 !
  3. audio标签的timeupdate事件和ended事件
  4. 「推荐」Windows中那些你一定会爱上的神奇软件
  5. 寒假玩游戏哪款蓝牙耳机好用?佩戴舒适,主动降噪,这五款真绝了~
  6. opacity animation性能注意事项
  7. lcd屏幕是rgb565时 rgb24转rgb16
  8. python爬虫爬取网页图片_Python爬虫:爬取网页图片
  9. Splashtop 与 Wacom 扩大合作伙伴关系,远程环境下的增强版智能交互笔显示技术首次亮相
  10. mac电脑开发环境配置-jdk、maven、git