C++ stringstream 类的用法「建议收藏」

C++ stringstream 类的用法「建议收藏」(转自:https://blog.csdn.net/nwpu_yike/article/details/22100615)一、类型转换——数字->字符串C++stringstream类是一种十分有用的类,特别是当我们需要在程序中使用字符串和数字数据互相转换的时候。要想在程序中使用stringstream类,我们需要在源程序文件中包含头文件include<sstream&…

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

(转自:https://blog.csdn.net/nwpu_yike/article/details/22100615

一、类型转换——数字->字符串

C++ stringstream 类是一种十分有用的类,特别是当我们需要在程序中使用字符串和数字数据互相转换的时候。要想在程序中使用 stringstream 类,我们需要在源程序文件中包含头文件include<sstream>。stringstream 对象的使用方法与cout对象的使用方法基本相同。

当我们需要按预定的格式将程序中的数据保存在一个string 中的时候,可以先创建一个stringstream 对象,并通过运算符 ”<<“ 将数据传递给 stringstream 对象。(这与通过”<<“ 使用cout 对象的方法相同。)接着,我们可以通过调用stringstream 类的函数str() 将对象所包含的内容赋给一个string对象。在下面的程序中,我们先将数据传递给一个stringstream 对象,然后通过该 stringstream 对象将数值赋给一个string 对象。注:cout能使用的所有ios格式标记也可以在stringstream 对象中使用。

#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;
}

输出结果:

C++ stringstream 类的用法「建议收藏」

这个示例的本质是:数字 -> stringstream对象 -> string

二、类型转换——字符串->数字

string -> double/int

#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();
    ss << str;
    ss >> iVal;
    cout << "iVal: " << iVal << endl;  
        
    return 0;  
}  

输出结果:

C++ stringstream 类的用法「建议收藏」

这个示例的本质是:string -> stringstream对象 -> 数字


[DNFM0048]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • MybatisPlus 分布式Id

    MybatisPlus 分布式Id对于分布式id,有很多方案,现在大多数用的是基于雪花算法snowflake的实现,美团有leaf,百度有uid-generator,我这里记录下苞米豆在MybatisPlus3中的分布式id实现简单介绍下雪花算法雪花算法也叫雪花id,是一个64bit的整型数据,原生的snowflake是这样的:最高位不用,41bit保存时间戳,单位是毫秒,10bit的机器位,12bit的唯一序列号,可以理解是某一毫秒内,某台机器生成了不重复的序列号10bit一般一会分为5bit的datacen

    2025年6月20日
    8
  • madvrhdrmeasure 设置_ime3d安装教程

    madvrhdrmeasure 设置_ime3d安装教程目前网络上广泛传播的127.0.0.1版本madVR,在HDR转SDR这方面差强人意。为了追求更好的显示效果,可以下载madVR针对HDR的更新包,即madVRhdrMeasure。时至2021-10-27,madVRhdrMeasure最新版本为141。官网下载地址:http://madshi.net/madVRhdrMeasure141.ziphttp://madshi.net/madVRhdrMeasure141.zip……

    2025年11月15日
    2
  • uniqueidentifier类型_unique唯一索引

    uniqueidentifier类型_unique唯一索引INSERT语句:CREATETABLEMyUniqueTable(UniqueColumnUNIQUEIDENTIFIERDEFAULTNEWID(),CharactersVARCHAR(10))GOINSERTINTOMyUniqueTable(Characters)VALUES…

    2025年10月2日
    2
  • 特殊字体英文可复制粘贴[通俗易懂]

    特殊字体英文可复制粘贴[通俗易懂]???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

    2022年4月28日
    306
  • pycharmprojects可以删除吗_删除pycharm项目

    pycharmprojects可以删除吗_删除pycharm项目1.点击file-&gt;closeproject2.退回到主界面:选择到想要删除的项目,右键选中“removeselectedfrom……”,然后关闭pycharm,去项目位置删除项目文件即可。3.如果此时删除工程文件提示被占用的话,则进入pycharm新建一个其他工程,再删除工程即可。…

    2022年8月29日
    2
  • 华为9月3日或推出麒麟9000;TiDB 3.0.18 发布| 极客头条

    华为9月3日或推出麒麟9000;TiDB 3.0.18 发布| 极客头条「极客头条」——技术人员的新闻圈!CSDN的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。国内要闻华为9月3日举行IFA活动:推出麒麟9000,Mate40发布时间或确认华为宣布将于德国当地时间9月3日下午14点(北京时间20点)举办IFA2020主题演讲,预计将会推出5nm麒麟90005G处理器,并且公布Mate40系列发布时间。从目前已有的消息来看,麒麟9000处理器基于台积电5nm工艺打造,并集成华为研发的新NPU、5G基带等技术。(新浪科

    2022年6月2日
    41

发表回复

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

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