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]

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • 【工具使用】SecureCRT的下载、安装图文详细过程介绍[通俗易懂]

    【工具使用】SecureCRT的下载、安装图文详细过程介绍[通俗易懂]本文目录一、SecureCRT的介绍二、SecureCRT的下载三、SecureCRT的安装四、SecureCRT的使用一、SecureCRT的介绍SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。SecureCRT支持SSH,同时支持Telnet和rlogin协议。SecureCRT是一款用于连接运行包括Windows、UNIX和VMS的理想工具。通过使用内含的VC

  • Hsql函数上

    Hsql函数上Hsql函数.上(关系/数学/逻辑/数值/日期/条件/字符串/集合统计/复杂类型)原文链接:https://blog.csdn.net/scgaliguodong123_/article/details/60881166hive常见函数准备数据zhangsa dfsadsa323 new 67.1 2lisi 543gfd old 43.32 1wanger 65ghf new…

  • python做微信回复机器人_微信自动回复机器人免费版

    python做微信回复机器人_微信自动回复机器人免费版还记得“人人”火的时候,有个小黄鸡很有名,可以不知疲倦地和你聊上一整天,而且各种搞怪金句频出,让人欲罢不能。如今人人已经成为“人人直播-高颜值品质直播平台”了(往事不堪回首啊),微信却火地一塌糊涂,那么如何在微信上做一个有趣的小黄鸡功能呢?还好我们有Python。Lifeisshort,sousepython.不得不承认Python真的是一种神奇的语言,常常带给人很多惊喜。不到30行代码便可

  • 弗洛伊德算法怎么理解_弗洛伊德算法思想

    弗洛伊德算法怎么理解_弗洛伊德算法思想这个方法中,其中每一个顶点到另一个顶点最多就是两步。所以就是找到两个顶点的最近距离packagea;importjava.lang.reflect.Array;importjava.util.Arrays;publicclassFloydDemo{publicstaticvoidmain(String[]args){char[]di…

    2022年10月23日
  • Oracle 视图索引

    Oracle 视图索引第五章视图索引的操作5.1视图的功能一个视图实际上就是封装了一条复杂的查询语句注:为了在当前用户模式中创建视图,要求数据库用户必须有createanyview(创建任何视图)的权限。5.2创建视图的语法create[orreplace]view视图名称as查询语句例:建立一个视图,包含全部部门编号为20的部门的雇员信息(雇员编号,姓名,工作,部门编号)createview…

发表回复

您的电子邮箱地址不会被公开。

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