前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C++:用sprintf()快速把想要的东西转成string类

C++:用sprintf()快速把想要的东西转成string类

作者头像
用户7886150
修改于 2021-02-14 07:07:50
修改于 2021-02-14 07:07:50
1.9K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: C++ snprintf()

我们在使用c++时,通常会把一些我们想要的信息整合到一个string实例里,然后转到cout中输出。一开始用的方法可能是通过先构造一个空的string对象,然后通过”+=”来一个个构造我们想要的string对象。 

这里存在一个麻烦,就是当数据类型繁杂(int,float,double转string),数据数量偏多,数据在信息中比较分散时,一步步的构造会十分麻烦。还要用流来转数据为string。(特别是当数据还要保持精度时,还要用fixed,那酸爽。。。。)降低了编程的效率。 

这里介绍最近学会的sprintf()函数,可以很好的解决这个问题。 

这个函数是在<cstdio>这个头文件中。  函数原型是: 

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

它可以把你想要的信息统统以c风格的字符串形式存入s中,然后,调用string类的构造函数,即可以构造出一个你想要的string。 

参数列表解释:  1、s是存放c风格字符串的数组第一个元素的指针  2、n是你想要使用的这个数组的最大的长度。  3、format是格式,其实和printf()相类比,就可以知道是类似”%s”这种,这样的话,把你想要的信息都在”“里面实现,而且控制精度也十分方便,就像printf()的那样。  4、…表示你的变量,按照format中的从左到右的顺序排列完整即可。  5、返回值是成功改变的字符的数量,如果出现错误的话,返回负数 

举例说明:  你想要为银行的vip客户创建一个名片。只需 

using namespace std;

string VIPAccount::profile() const {

    double limit = 1000;

    char a[300];  // 建一个足够大的数组就好

    memset(a, 0, sizeof(a));

    snprintf(a,sizeof(a),

        "ID:%d\nBALANCE:%.6lf\nVALID:Y\nTYPE:VIP\nLOAN:%.6lf,LIMIT:%.6lf\n",

    _id, _balance, _loan, limit);

    string temp(a);

    return temp;

(当然此处省略了VIPAccount这个类的声明。。) 

的确是很方便,比一个个的去构造要方便多了。。。 

当然,我们在c文件中也可以用这个来方便地构造我们想要的c风格字符串。 

做此记录,以免以后忘记如何使用:)

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《MySQL核心知识》第10章:自定义存储过程和函数
今天是《MySQL核心知识》专栏的第10章,今天为大家系统的讲讲MySQL中如何自定义存储过程和函数,希望通过本章节的学习,小伙伴们能够举一反三,彻底掌握MySQL中关于自定义存储过程和函数的知识。好了,开始今天的正题吧。
冰河
2022/12/01
3.7K0
《MySQL核心知识》第10章:自定义存储过程和函数
Mysql中的自定义函数和自定义过程
转载自 http://www.cnblogs.com/lyhabc/p/3793524.html
allsmallpig
2021/02/25
4.6K0
MySQL学习笔记-进阶部分
MySQL是一个关系型数据库管理系统,它将数据保存在不同表中以提供数据的灵活性。MySQL所使用的 SQL 是用于访问数据库的最常用标准化语言。MySQL基础介绍 部分的创建数据库、创建数据表、更新数据、查询数据等语句都是MySQL编程的一部分。
李市
2023/12/08
4530
【MySQL高级】存储过程和函数
存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。
陶然同学
2023/02/24
1K0
【MySQL高级】存储过程和函数
mysql-存储过程(转载)
转自(http://www.cnblogs.com/exmyth/p/3303470.html)
用户2038589
2018/09/06
9560
mysql存储过程
MySQL存储过程 14.1.1 创建存储过程 MySQL中,创建存储过程的基本形式如下: 1.CREATEPROCEDUREsp_name([proc_parameter[,...]]) 2.[characteristic...]routine_body 其中,sp_name参数是存储过程的名称;proc_parameter表示存储过程的参数列表; characteristic参数指定存储过程的特性;routine_body参数是SQL代码的内容,可以用BEGIN…END来标志SQL代码的开始和结束。 proc_parameter中的每个参数由3部分组成。这3部分分别是输入输出类型、参数名称和参数类型。其形式如下: 1.[IN|OUT|INOUT]param_nametype
张哥编程
2024/12/13
3860
Mysql高级7-存储过程
  存储过程是事先经过编译并存储在数据库中的一段sql语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库sql语言层面的代码封装与重用。
Se7eN_HOU
2023/08/15
8380
MySQL自定义函数和存储过程
MySQL函数是一些具有特定功能的方法,在编写sql时,可以进行使用,从而完成对数据的处理。
半月无霜
2023/03/03
3.1K0
MySQL自定义函数和存储过程
MySQL数据库之存储过程与存储函数
        存储过程和存储函数类似于面向对象程序设计语言中的方法,可以简化代码,提高代码的重用性。本文主要介绍如何创建存储过程和存储函数,以及存储过程与函数的使用、修改、删除等操作。
星哥玩云
2022/08/17
7.2K0
MySQL数据库之存储过程与存储函数
MySQL的存储过程_MySQL创建存储过程
在项目开发中,经常会遇到这样一种场景,当修改A表的一条数据时,需要关联修改B表、C表甚至其他更多表的数据,为什么会这样呢?
全栈程序员站长
2022/11/08
22.8K0
MySQL的存储过程_MySQL创建存储过程
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
注意:用户定义的变量无需对其进行声明或初始化,不声明或初始化获取到的值为NULL。
.29.
2023/11/20
2.3K0
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
MySQL存储过程、函数、视图、触发器、索引和锁的基本知识
视图存储了查询,当调用的时候会生成查询语句对应的结果集,一个视图可以看成是一个虚拟的表。
青山师
2023/05/05
1.2K0
Mysql存储过程和存储函数
1.5.2. CASE - WHEN - THEN - ELSE - END CASE
爱撒谎的男孩
2019/12/31
1.9K0
第16章_变量、流程控制与游标
在 MySQL 数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据。
程序员Leo
2023/08/07
4160
第16章_变量、流程控制与游标
MySQL存储过程学习
作为mysql的初学者,自己看着教程视频,做的笔记,以便日后回顾复习,纯手打,可能有些误差,可指出更正。
sgr997
2022/11/10
4570
2024Mysql And Redis基础与进阶操作系列(9)作者——LJS[含MySQL存储过程之局部、系统变量、参数传递、流程控制-判断/case具体详步骤;注意点及常见报错问题所对应的解决方法]
存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于 JAVA语言中的方法;
盛透侧视攻城狮
2024/10/22
2180
2024Mysql And Redis基础与进阶操作系列(9)作者——LJS[含MySQL存储过程之局部、系统变量、参数传递、流程控制-判断/case具体详步骤;注意点及常见报错问题所对应的解决方法]
MySQL 进阶之存储过程/存储函数/触发器
上面给大家演示了存储过程中的基本语法,现在只是在存储过程中定义了一条简单的select 语句 ,并没有任何逻辑。
叫我阿杰好了
2022/11/07
2.3K0
MySQL 进阶之存储过程/存储函数/触发器
MySQL 视图/存储过程/触发器
视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。
用户9615083
2022/12/25
2.6K0
MySQL 视图/存储过程/触发器
浅谈 MySQL 存储过程与函数
存储过程 和 存储函数说实话本人工作中不经常使用,康师傅也说 阿里开发准则 不建议使用存储过程/函数… 但这并不是咱不会的理由🙃
Java_慈祥
2024/08/06
2750
浅谈 MySQL 存储过程与函数
SQL视图、存储过程、触发器
视图(view)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。
海盗船长
2023/10/11
3900
推荐阅读
相关推荐
《MySQL核心知识》第10章:自定义存储过程和函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档