sprintf、snprintf相关函数的主要功能是把格式化的数据写入某个字符串。如最常见的应用是将整数或浮点数转换为字符串。

1、sprintf

将格式化的数据写入字符串,并自动在末尾加上一个空字符'\0'.

原型:

int sprintf ( char * str, const char * format, ... );

str: 要写入的字符串缓冲区地址

format: 格式化数据

返回:执行成功时,返回写入到字符个数。

const int MAX_LEN = 5;
char buf[MAX_LEN];
int ret = sprintf(buf,"%dabc",2);
cout << "Write character number" << ret << endl;
cout << buf << endl;

output:

Write character number:4
2abc

注意:使用sprintf时要一定要确保字符串缓冲区足够大,当要写入的数据长度大于缓冲区的容量时,将导致程序异常。

2、snprintf

原型:

int snprintf ( char * s, size_t n, const char * format, ... );

该函数比sprintf多一个size_t n参数,该参数指出了字符串缓冲区的最大容量。如果写入的字符个数 > n - 1,超过的部分将会被截断,即最多写入n-1个字符,并自动添加'\0'。该函数返回欲写入的字符串长度。

如下:

const int MAX_LEN = 5;
char buf[MAX_LEN];
int ret = snprintf(buf,MAX_LEN,"%dABCDEF",2);

最终输出结果:2ABC

注:该函数只存在与linux/Unix平台,windows下并没有该函数,但存在类似函数_snprintf等。

以下函数存在于windows平台:

3、sprintf_s

sprintf所谓的安全版本。

原型:

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

buffer: 缓冲区地址

sizeofBuffer: 缓冲的最大容量

format:格式化数据

返回:执行成功时,返回写入的字符个数

msdn上描述如下:

if the buffer is too small for the text being printed then the buffer is set to an empty string and the invalid parameter handler is invoked.

如果写入的数据长度大于 sizeBuffer - 1 ,将会触发错误。

如在vs2010 Debug模式下:

const int MAX_LEN = 5;
char buf[MAX_LEN];
ret = sprintf_s(buf,sizeof(buf),"%dABCD",2);
cout << "Write character number:" << ret << endl;
cout << buf << endl;

会弹出如下错误提示:

aaarticlea/png;base64,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" alt="" />

4、_snprintf

int _snprintf(
char *buffer,
size_t count,
const char *format [,
argument] ...
);

功能与snprintf类似,count表示最多能写入的字符个数, 执行成功时返回写入的字符个数,失败时返回-1;

但要注意,msdn如下描述:

If len < count, len characters are stored in buffer, a null-terminator is appended, and len is returned.

If len = count, len characters are stored in buffer, no null-terminator is appended, and len is returned.

If len > count, count characters are stored in buffer, no null-terminator is appended, and a negative value is returned.

所以使用_snprintf后有可能生成的字符串没有以空字符结尾,所以在使用时一定要检查返回值

一种安全的做法是:

char buff2[MAX_LEN] = {0};
ret = _snprintf(buff2,sizeof(buff2) - 1,"%dCDEF",2);
if (ret < 0)
{
  cout << "Warning:string will be truncated" << endl;
}

5、_snprintf_s

_snprintf的安全版本,所谓的安全就是 _s类函数在字符串超出缓冲区的容量大小时,会调用invalid parameter handler处理程序,即弹出错误提示框。

原型:

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

sizeofBuffer: 缓冲区的最大容量

count: 最多能写入的字符个数

ret = _snprintf_s(buf,sizeof(buf),sizeof(buf) - 1,"%d1234",2);
cout << "_snprintf_s ret:" << ret << endl;
cout << buf << endl;

格式化字符串函数sprintf的更多相关文章

  1. PHP格式化字符串函数 sprintf()

    定义和用法 sprintf() 函数把格式化的字符串写入一个变量中. 语法 sprintf(format,arg1,arg2,arg++) 参数 描述 format 必需.转换格式. arg1 必需. ...

  2. Linux C 字符串函数 sprintf()、snprintf() 详解

    一.sprintf() 函数详解 在将各种类 型的数据构造成字符串时,sprintf 的强大功能很少会让你失望. 由于 sprintf 跟 printf 在用法上几乎一样,只是打印的目的地不同而已,前 ...

  3. [转载]Linux C 字符串函数 sprintf()、snprintf() 详解

    一.sprintf() 函数详解 在将各种类 型的数据构造成字符串时,sprintf 的强大功能很少会让你失望. 由于 sprintf 跟 printf 在用法上几乎一样,只是打印的目的地不同而已,前 ...

  4. JavaScript 实现格式化字符串函数String.format (解决引号嵌套转义符问题)

    在js开发中,我们可能会遇到这样一个问题 当需要通过js动态插入html标签的时候 特别是当遇到大量的变量拼接.引号层层嵌套的情况,会出现转义字符问题,经常出错 我们来看个例子 <!DOCTYP ...

  5. str.format() 格式化字符串函数

    语法 它通过{}和:来代替%. “映射”示例 通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.form ...

  6. PHP字符串函数之 sscanf echo print sprintf vsprintf printf vprintf fprintf vfprintf

    sscanf – 根据指定格式解析输入的字符 echo – 输出一个或多个字符串 print – 输出字符串 sprintf – 返回格式化字符串 vsprintf – 返回格式化字符串 (参数为数组 ...

  7. Qt sprintf_s函数格式化字符串出错

    Qt sprintf_s函数格式化字符串出错 问题的出现: 我在VS上用c C++写的跨平台的函数 移植到Qt 上面 出现sprintf_s 函数格式化出错. 开始以为是编码问题  反复查找Qt乱码问 ...

  8. sprintf 格式化字符串

    好久没写博客了,又遇到自己觉得很傻的问题,格式化字符串还要找下 定义和用法 sprintf() 函数把格式化的字符串写入变量中. arg1.arg2.++ 参数将被插入到主字符串中的百分号(%)符号处 ...

  9. sprintf格式化字符串安全问题

    先看sprintf用法: 定义和用法 sprintf() 函数把格式化的字符串写入变量中. arg1.arg2.++ 参数将被插入到主字符串中的百分号(%)符号处.该函数是逐步执行的.在第一个 % 符 ...

随机推荐

  1. 【转】crontab命令 脚本定时运行

    一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动cro ...

  2. 第二百六十节,Tornado框架-内置模板方法

    Tornado框架-内置模板方法 直接在html文件使用,不需要传值 Tornado默认提供的这些功能其实本质上就是 UIMethod 和 UIModule,也就是Tornado框架定义好的html文 ...

  3. noip2014滚粗记

    滚粗了..伤心. day0:和baba一起去,但是整天都是下雨啊好不爽,鞋子都湿了啊好不爽,注定是要滚粗?在火车站等了1h后上动车走人...在此期间我还天真的认为火车站的wifi可以被我给破解然后上网 ...

  4. 将execel表格的数据导入到mysql数据库

    在开发中经常会将现成的execel表格导入到数据库里,否则一个个字段插入填写,太浪费时间,效率很低.本文主要是讲如果将execel表格导入到mysql数据库,希望对各位有所帮助.使用软件:sql工具: ...

  5. springcloud微服务架构搭建

    SpringCloud微服务框架搭建 一.微服务架构 1.1什么是分布式 不同模块部署在不同服务器上 作用:分布式解决网站高并发带来问题 1.2什么是集群 多台服务器部署相同应用构成一个集群 作用:通 ...

  6. Linux命令在线中文手册

    很好的Linux学习手册:http://linux.51yip.com/ 来源:http://blog.51yip.com/

  7. Unity3D 物体移动方式总结(转)

    1. 简介 在unity3d中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在 ...

  8. Hive将txt、csv等文本文件导入hive表

    1.将txt文本文件放置hdfs目录下 2.登录hive并进入到指定数据库 3.创建表 create external table if not exists fun_user_external ( ...

  9. iOS开发之--去除按钮的点击效果

    Button.adjustsImageWhenHighlighted = NO; 去除按钮的点击效果,用这句代码就可以了!

  10. UE4关于编译配置的参考(Debug,DebugGame,Development,Shipping,Test等)

    https://docs.unrealengine.com/latest/CHN/Programming/Development/BuildConfigurations/index.html 编译配置 ...