• C++ 字符流 stringstream


    (转自: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对象 -> 数字

  • 相关阅读:
    array note
    前端开发规范
    java集合分类
    react native环境
    gulp
    关于如何在海量手机号中刷选出想要的手机号
    生成用户头像插件
    下拉加载
    阿里云人脸人体识别调试心得与备忘
    Sublime text3使用时有卡顿现象
  • 原文地址:https://www.cnblogs.com/Kaniso-Vok/p/13756222.html
Copyright © 2020-2023  润新知