函数功能:

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

函数原型:

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 的用法的更多相关文章

  1. sprintf_s函数用法

    函数功能:将数据格式化输出到字符串 函数原型: int sprintf_s( char *buffer, size_t sizeOfBuffer, const char *format [, argu ...

  2. sprintf_s() 、sprintf()和printf()区别和用法

    转载:https://blog.csdn.net/qq_35608277/article/details/80878802 int sprintf_s(char *buffer,size_t size ...

  3. 转:Visual C++ sprintf()函数用法

    将字串格式化命令.sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访 问错误,但好在由sprintf 误用导致的问题虽然严重,却很容易找出,无非就是那么几种情 ...

  4. C++小知识之sprintf用法

    sprintf   字串格式化命令,主要功能是把格式化的数据写入某个字符串中.sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访问错误,但好在由sprintf ...

  5. sprintf()函数的用法

    Visual C++ sprintf()函数用法 转:http://blog.csdn.net/masikkk/article/details/5634886 在将各种类型的数据构造成字符串时,spr ...

  6. sprintf_s的使用

    int sprintf_s(char *restrict buffer, rsize_t bufsz,              const char *restrict format, ...); ...

  7. sprintf的用法

    正文:printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf 了解多吗? ...

  8. sprintf,snprintf的用法(可以作为linux中itoa函数的补充)【转】

    转自:http://blog.csdn.net/educast/article/details/25068445 函数功能:把格式化的数据写入某个字符串 头文件:stdio.h 函数原型:int sp ...

  9. 几个常用I/O函数用法(printf,fprintf等)

    一 格式化输出 1.printf 定义:int printf(const char *format,[argument]); 功能:产生格式化输出的函数(定义在 stdio.h 中) 参数说明:for ...

随机推荐

  1. 抓取https网页时,报错sun.security.validator.ValidatorException: PKIX path building failed 解决办法

    抓取https网页时,报错sun.security.validator.ValidatorException: PKIX path building failed 解决办法 原因是https证书问题, ...

  2. golang学习笔记5 用bee工具创建项目 bee工具简介

    golang学习笔记5 用bee工具创建项目 bee工具简介 Bee 工具的使用 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/instal ...

  3. vim编辑文件警告Swap file already exists ,如何删除vim编辑产生的.swp文件?查看隐藏文件命令

    vim编辑文件警告Swap file already exists,如何删除vim编辑产生的.swp文件?查看隐藏文件命令 Linux(centos7)下多个用户同时编辑一个文件,或编辑时非正常关闭, ...

  4. 前端框架VUE----对象的单体模式

    对象的单体模式 为了解决箭头函数this指向的问题 推出来一种写法 对象的单体模式 1 var person = { 2 name:'小马哥', 3 age:12, 4 fav(){ 5 consol ...

  5. java加载配置文件信息

    #基金数据存放根目录fund_save_root_path=E:/fundCrawling #龙虎榜数据存放根目录long_hu_root_path=E:/longHuCrawling #巨潮数据存放 ...

  6. Python 内置函数sorted()在高级用法

    对于Python内置函数sorted(),先拿来跟list(列表)中的成员函数list.sort()进行下对比.在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的. ...

  7. android之csv导出

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  8. Java基础语法(上)

    Java编译报错出现非法字符,原因是存在中文字符. Java关键字的字母都是小写. Java是一种强类型语言,针对每一种数据都给出了明确的数据类型. 数据类型分类: A:基本数据类型 B:引用数据类型 ...

  9. Junit中AssertTrue的使用

    assertTrue public static void assertTrue(String message, boolean condition) Asserts that a condition ...

  10. Python3 tkinter基础 Label compound 图片上显示文字 fg字体颜色 font字体大小

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...