函数功能:

将数据格式化输出到字符串

函数原型:

int sprintf( char *buffer, const char *format [,argument] ... )

注意这里的buffer指针 指向的是格式化字符后写入的首地址。

意思就是:格式化数据,并写入字符串,这些方法已经不用,因为有更安全的方法可用。

参考sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l 这些函数。

sprintf_s函数原型

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

从原型上看:sprintf 和 sprintf_s 的差别就是sprintf_s多了一个参数sizeofbuffer。

两个的具体差别,还是看MSDN上的说明:

一个差别是:sprintf_s 会检查格式化字符的合法性,而sprintf只会检查其是否是空指针;

另一个差别是:sprintf_s 设置了输出buffer的大小。

sprintf_s()是sprintf()的安全版本,通过指定缓冲区长度来避免sprintf()存在的溢出风险。

程序示例:

#include<iostream>
using namespace std; int main(){ char s[1024]; //需要预先分配缓冲区
sprintf(s, "%d %d %s", 123,2,"hello"); cout << s << endl; system("pause");
return 0;
}

输出

123 2 hello

常见用法:


//把整数123 打印成一个字符串保存在s 中。
sprintf(s, "%d", 123); //产生"123"
//可以指定宽度,不足的左边补空格:
sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"
//当然也可以左对齐:
sprintf(s, "%-8d%8d", 123, 4567); //产生:"123 4567"
//也可以按照16 进制打印:
sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置,右对齐
sprintf(s, "%-8X", 4568); //大写16 进制,宽度占8 个位置,左对齐
char filename[1024];//需要预先分配缓冲区
char path1[128] = "D:\\Program\\Tesseract-OCR\\tesseract.exe";
char path2[128] = "D:\\Program\\Tesseract-OCR\\";
char path3[128] = "D:\\Program\\Tesseract-OCR\\txt";
char path4[128] = "-l chi_sim";
sprintf_s(filename,"%s %s %s %s",path1,filepath,path3,path4);
system(filename);

转自 https://blog.csdn.net/woshi_hujunjun/article/details/7296639

https://blog.csdn.net/tigernana/article/details/6916491

https://www.cnblogs.com/jeekun/archive/2013/01/15/2862051.html

最新文章

  1. s3c2440 移值u-boot-2016.03 第2篇 支持Nand flash启动
  2. mvn 命令
  3. [转] 强大的python字符串解析
  4. 命令行方式运行yii2程序
  5. FileZilla 错误425 Can&#39;t open data connection 读取目录列表失败
  6. XAML: 获取元素的位置
  7. Core Erlang:Erlang的Core中间表示
  8. angular路由详解三(路由参数传递)
  9. 关于 Kubernetes 中的 Volume 与 GlusterFS 分布式存储
  10. python实用脚本集
  11. Python11/23--mysql用户管理/pymysql
  12. iOS库
  13. HTML第七章总结
  14. 通过ambari安装hadoop集群,ZT
  15. py库: scrapy (深坑未填)
  16. ecsop文件结构
  17. IT公司常见的内网漏洞表格
  18. SoftMax多分类器原理及代码理解
  19. 对于redis框架的理解(四)
  20. jqprint网页打印时有页码和URL

热门文章

  1. java课上测试心得
  2. ogg 12.3 中 format release的变化
  3. Spring5源码解析-Spring框架中的单例和原型bean
  4. Servlet上传下载
  5. ES6知识整理(5)--对象的扩展
  6. sqlalchemy学习笔记
  7. 深入理解 Vue 组件
  8. Kali系列之Hydra/Medusa mysql密码爆破
  9. squid代理服务器安装和配置
  10. 搭建ldap自助修改密码系统--Self Service Password