C++ stringstream 字符串格式化与格式转换方法

C++ stringstream 字符串格式化与格式转换方法stringstream对象C++stringstream类是一种十分有用的类,特别是当我们需要在程序中使用字符串和数字数据互相转换的时候字符串格式化ss<<过程:数字->stringstream对象->string创建一个stringstream对象,并通过运算符”<<“将数据传递给stringstream对象再调用st…

大家好,又见面了,我是你们的朋友全栈君。

stringstream 对象

C++ stringstream 类是一种十分有用的类,特别是当我们需要在程序中使用字符串和数字数据互相转换的时候

字符串格式化 ss <<

  • 过程:数字 -> stringstream对象 -> string
  • 创建一个stringstream 对象,并通过运算符 ”<<“ 将数据传递给 stringstream 对象
  • 再调用stringstream 类的函数str() 将对象所包含的内容赋给一个string对象

#include <iostream>
#include <sstream>
 
using namespace std;
 
int main(void)
{ 
   
    double pi = 3.141592653589793;
    float dollar = 1.00;
    int dozen = 12;
    int number = 35;
    
    stringstream ss;
    
    ss << "dozen: " << dozen << endl;
    
    //显示小数
    ss.setf(ios::fixed);
    
    //显示2位小数
    ss.precision(2);
    ss << "dollar: " << dollar << endl;
    
    //显示10位小数
    ss.precision(10);
    ss << "pi: " << pi << endl;
    
    //按十六进制显示整数
    ss.unsetf(ios_base::dec);
    ss.setf(ios::hex);
    ss << "number: " << number << endl;
    
    string text = ss.str(); //格式化后的字符串
    cout << text << endl;  
    
    return 0;
}

字符串格式转换 ss >>

  • 过程:string -> stringstream对象 -> 数字
#include <iostream>
#include <sstream>
 
using namespace std;
 
int main()  
{ 
     
    double  dVal;    
    int     iVal;
    string  str;
    stringstream ss;
    
    // string -> double
    str = "123.456789";  
    ss << str;
    ss >> dVal;
    cout << "dVal: " << dVal << endl;
 
    // string -> int
    str = "654321";  
    ss.clear();  //注意 stringstream 
    ss << str;
    ss >> iVal;
    cout << "iVal: " << iVal << endl;  
        
    return 0;  
} 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137895.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • OHEM[通俗易懂]

    OHEM[通俗易懂]TrainingRegion-basedObjectDetectorswithOnlineHardExampleMining00Astract摘要主要讲了四点:(1)训练过程需要进行参数的空间搜索(2)简单样本与难分辨样本之间的类别不平衡是亟需解决的问题(3)自动地选择难分辨样本来进行训练不仅效率高而且性能好(4)提出了OHEM算法,不仅效率高而且性能好,在各种数据集上表…

    2022年5月7日
    54
  • vue axios轮询更新echarts 页面崩溃问题

    vue axios轮询更新echarts 页面崩溃问题之前做过一个项目测试发现这个问题,就是页面停留3,4个小时之后页面崩溃了后来观察了浏览器的Memory发现echarts实例还有echarts数据缓存在不断累积解决:刚开始看了echarts官方api确实提供了echarts.clear()清空当前实例,会移除实例中所有的组件和图表。用了以后发现作用不是很大还是会崩溃。那就是实例的问题了刚开始只是加了个判断 letmyEcharts if(!myEcharts){ myEcharts=echarts.init

    2025年6月16日
    6
  • ajax跨域解除方案,关于Ajax跨域问题及解决方案详析「建议收藏」

    ajax跨域解除方案,关于Ajax跨域问题及解决方案详析「建议收藏」复现Ajax跨域问题做两个简单的小项目复现Ajax跨域问题.后端语言使用Java首先是一个简单的订单系统,通过访问/loadOrderList,最终以json串形式返回订单集合.该项目使用Tomcat发布在7070端口.@RequestMapping(“/loadOrderList”)@ResponseBodypublicListloadOrderList(Stringuid){//…

    2022年8月24日
    6
  • Keil(MDK-ARM)使用教程——在线调试

    Keil(MDK-ARM)使用教程——在线调试Keil(MDK-ARM)使用教程(三)_在线调试由于我是直接使用(打开现有的软件工程),如果跟着需要下载上面演示参考的软件工程才行。工程默认是使用硬件在线调试,接下来按照每一点来讲述。 1.编译+调试打开软件工程 -&gt; 编译 -&gt; 调试这里的编译建议使用BuildTarget(第2个按钮)编译工程(如下图动画),也就是使用快捷键F7。Translate(第1个按钮)是编译当前活动文…

    2022年5月23日
    40
  • Linux服务器如何做raid1,Linux下制作raid1

    Linux服务器如何做raid1,Linux下制作raid1制作raid1raid1是Linux服务器最常用的一种硬盘冗余备份的方案,它能在硬盘损坏的情况下保证硬盘数据内的安全。需要至少两块硬盘,最好是完全相同的两块硬盘,所创建的若磁盘中有谁损坏,则备用盘自动替补上去。一、搭建Linuxraid1环境1.准备好要制作raid1的硬盘,至少两块,最好是两块同型号同容量的硬盘。2.用fdisk工具对硬盘进行分区(用sda做示例…

    2022年7月15日
    25
  • jediscluster api_java.lang.throwable

    jediscluster api_java.lang.throwable由于redis的集群rediscluster不支持keys这样的多key操作(具体原因由于sharding后,不同的key属于不同的slot,难以支持原子操作)。所以如果一个对外需要对缓存做失效处理时比较棘手。所以本类提供工具方法再rediscluster查找按照hashTags处理的keys和一般的keys。基于jediscluster实现。有优化空间,现在懒得改了importjav…

    2022年10月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号