sprinf sprintf_s 的用法
函数功能:
将数据格式化输出到字符串
函数原型:
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
sprinf sprintf_s 的用法相关推荐
- sprintf_s的用法探究
这个函数定义如下 int sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format [,argument] ... ); 参数说明是这 ...
- sprintf 用法(sprintf_s)
函数原型: int sprintf( char *buffer, const char *format [,argument] ... ) 注意这里的buffer指针 指向的是格式化字符后写入的首地址 ...
- sprintf_s() 、sprintf()和printf()区别和用法
int sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format [,argument] -); eg: char buff[256] ...
- sprintf, snprintf, _snprintf, sprintf_s 等的区别
先放结论 1.在支持snpritf的编译器 ,只使用int snprintf( char *buffer, size_t count, const char *format [, argument] ...
- C语言学习——sprintf函数详细解释及其用法
函数功能: 把格式化的数据写入某个字符串 头文件: stdio.h 函数原型: int sprintf( char *buffer, const char *format, [ argument] - ...
- sprintf_s的使用
int sprintf_s(char *restrict buffer, rsize_t bufsz, const char *restrict format, ...); ...
- sprintf用法详解
printf可能是许多程序员在开始学习C语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf了解多吗?在将各种类型 ...
- sprintf函数的用法_我在C++项目中对于宏的一些用法
从上一次写文章到现在已经快2个月了,为啥没更新,因为太忙了! 每天都在为了实现一些麻烦的功能而心急火燎,总是没办法静下心来写文章.所以一直拖延. 对于宏的一些个人用法其实早就想写出来了,碍于时间关系一 ...
- 详解sprintf()sprintf_s()
sprintf 函数功能:把格式化的数据写入某个字符串 头文件:stdio.h 函数原型:int sprintf( char *buffer, const char *format [, argum ...
最新文章
- Android 人民币符号在布局中实现的效果不一样的处理方法
- String和C#中的string有什么区别?
- getElementById取得文本框中的值
- 请你说明一下TreeMap的底层实现?
- showModalDialog数据缓存问题
- 从码奴到码神之路--初级到中级再到高级程序员的进化之路
- 【Python 标准库学习】安全哈希与摘要算法库 — hashlib
- gitlab ci mysql_php-Gitlab CI:在阶段之间保留MySQL数据
- 学生选课系统简单说明
- 个性签名html,简单个性签名大全2021最新版-简简单单的个性签名--个性简单签名设计-腾牛个性网...
- 个人微信淘宝客返利机器人搭建教程
- Effective Java目录
- 水平居中和transform: translateY(-50%) 实现元素垂直居中
- vc 调用matlab figure 画图
- Part 4R 不定积分和定积分
- 亮紫色晶体meso四(4-氨基苯基)卟啉TAPP/TAPPPt/TAPPCo/TAPPCd/TAPPZn/TAPPPd/TAPPCu/TAPPNi/TAPPFe/TAPPMn金属配合物-齐岳供应
- python求和函数1-n_python 用for循环实现1~n求和的实例
- HUANAN-X99-QD4 E5 2698V3 笔记本电脑 Hackintosh 黑苹果efi引导文件
- 微信小程序(微信应用号)开发ide安装解决方法
- 三阶魔方自动求解及动态可视化matlab代码
热门文章
- 智能监控中隐私与安全之间的错误选择
- oracle19c查看pdb表空间,19c pdb如何保存启动状态
- 软考-信息系统项目管理师-项目沟通管理和干系人管理
- defy 超频/降频CPU设置
- 17篇论文,详解图的机器学习趋势 | NeurIPS 2019
- windows下的LoadLibrary
- 计算机桌面上的公文包怎么加密,win7系统公文包如何用?win7公文包的使用教程...
- tomcat优化之server.xml
- SQL大厂春招真题,独家详细解析
- 支付宝电脑网站支付(新版)