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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 缺陷报告怎么写_注意缺陷报告单

    缺陷报告怎么写_注意缺陷报告单缺陷报告怎么写意义:开发人员和测试人员沟通的重要工具1、缺陷编号(DefectID)——提交缺陷的顺序2、缺陷标题(summary)——简明扼要的描述缺陷3、缺陷的发现者(Defectby)–4、发现缺陷的日期(Detectedondata)—-当天5、缺陷所属的模块(subject)————测试哪个功能模块的时候发现的,开发者可以由此决定谁修改该bug6、发现缺陷版本(Detectedinrelease)测试的是哪个版本(测试是回归

    2022年9月18日
    0
  • tcpdf_teambition搭建

    tcpdf_teambition搭建tcpdf开发文档(中文翻译版)2017年5月3日15:06:15这个是英文翻译版,我看过作者的文档其实不太友善或者不方便阅读,不如wiki方便后面补充一些,结构性文档翻译这是一部官方网站文档,剩余大部分都是开发的时候和网络总结来的项目官网:https://tcpdf.org/github:https://github.com/tecnickcom/TCPDF都没比较完整的api文档…

    2022年9月8日
    0
  • sqlSessionFactory创建

    sqlSessionFactory创建前言分析上篇文章的整合的配置文件,我们可以知道配置的bean是成树状结构的,而在树的最顶层是类型为org.mybatis.Spring.SqlSessionFactoryBean的bean,它将其他相关的bean组装在了一起,那么我们的分析就从此类开始。sqlSessionFactory创建对于配置文件的读取,Spring是通过org.mybatis.Spring.SqlSessi…

    2022年5月27日
    44
  • 应用程序错误电脑黑屏_werfault应用程序错误黑屏|Win7解决werfault.exe应用程序错误方法…「建议收藏」

    应用程序错误电脑黑屏_werfault应用程序错误黑屏|Win7解决werfault.exe应用程序错误方法…「建议收藏」在我们使用电脑的时候,时常会遇到各种问题,有时候会遇到电脑弹出窗口提示werfault.exe应用程序错误,这是什么意思?该如何解决?下面小编就来和大家分享下Win7解决werfault.exe应用程序错误方法。1、首先要知道werfault.exe应用程序是什么程序。这是Windows操作系统将错误处理从崩溃进程的上下文移至新服务,即Windows错误报告(WER)。由服务托管进程中的DL…

    2022年6月16日
    31
  • mysql创建前缀索引

    mysql创建前缀索引ALTERtable表名addindextitle_pre(列名(100))列名后面的数字代表前缀的长度,前缀长度并不是越长越好,这里涉及到一个选择性问题,selectcount(distinct列名)/count(*)asa,COUNT(DISTINCTleft(列名,100))asb,COUNT(DISTINCTleft(列名,110))ascfrom表名来查…

    2022年5月10日
    59
  • ip地址是什么意思_手机ip显示归属地还是显示本地

    ip地址是什么意思_手机ip显示归属地还是显示本地如何通过IP找到地址?在我们印象中,我们都知道可以通过IP地址找到某个人。但当我们细想一下,我们会发现其实IP地址与地理位置并不是直接相关的。那我们到底是如何通过IP地址找到地址的呢?答案是:通过自治系统(AutonomousSystem)。互联网是由不同网络组成的网络,自治系统是组成Internet的大型网络,连接到Internet的每台计算机或设备都连接到一个AS。而每一个自治系统都会有一个编码,我们称之为ASN。…

    2022年9月14日
    0

发表回复

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

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