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)
上一篇 2022年5月5日 下午10:40
下一篇 2022年5月5日 下午10:40


相关推荐

  • VirtualBox安装VBoxGuestAdditions增强功能

    VirtualBox安装VBoxGuestAdditions增强功能VirtualBox 的增强功能 VBoxGuestAdd 太酷啦 VirtualBox 没装增强功能的时候实在是弱爆了 只能小窗口访问 并且总是要通过 hostkey 切换鼠标 非常麻烦 一开始我只是想要扩大虚拟机的分辨率 不想它总是那么小窗口不好用 then 发现安装 VBoxGuestAdd 可以解决好多问题 VirtualBoxGu 的功能

    2026年3月26日
    0
  • 八种方式实现跨域请求

    八种方式实现跨域请求前端开发中我们经常会遇到跨域请求的情况,处理跨域请求方式很多,特整理如下:浏览器的同源策略​提到跨域不能不先说一下”同源策略”。​何为同源?只有当协议、端口、和域名都相同的页面,则两个页面具有相同的源。只要网站的协议名protocol、主机host、端口号port这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域调用,会受到同源策略的限制。​同源策略限制从

    2022年5月10日
    59
  • pycharm不会自动补全括号_pycharm自动提示

    pycharm不会自动补全括号_pycharm自动提示安装pycharm后,输入代码后,没有补全提示首先检查是否关闭了代码提示,如下图,将红框中“PowerSaveMode”前的勾去掉第二步,如果在输入某些代码时还是没有补全提醒,可能是配置好python环境则点击file->settings->projectInterpreter,如下图选择安装的python输入代码就会有提示了…

    2022年8月25日
    30
  • latex在大括号里换行_大括号的解决问题

    latex在大括号里换行_大括号的解决问题存在问题:在编译LaTex的时候,会出现存在大括号\left(\right),但是一旦公式过长需要换行时,例如这个时候会用到\\与&来做换行,但如果直接编译的话,会报错,例如解决办法:在换行符前面加入变成\right.\\与&\left.这样就可以解决大括号换行的问题了,一个小点千万别漏写了…

    2022年10月11日
    8
  • mysql查看有哪些函数_MySQL函数一览_MySQL函数全部汇总

    mysql查看有哪些函数_MySQL函数一览_MySQL函数全部汇总前言 MySQL 提供了众多功能强大 方便易用的函数 使用这些函数 可以极大地提高用户对于数据库的管理效率 从而更加灵活地满足不同用户的需求 本文将 MySQL 的函数分类并汇总 以便以后用到的时候可以随时查看 数学函数 1 ABS x 返回 x 的绝对值 2 PI 返回圆周率 默认显示 6 位小数 3 SQRT x 返回非负数的 x 的二次方根 4 MOD x y 返回 x 被 y 除后的余数 5 CEIL x CE

    2026年3月16日
    1
  • 文心一言4.5开源模型实战:ERNIE-4.5-0.3B轻量化部署与效能突破

    文心一言4.5开源模型实战:ERNIE-4.5-0.3B轻量化部署与效能突破

    2026年3月12日
    2

发表回复

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

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