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


相关推荐

  • Ubuntu卸载图形界面

    Ubuntu卸载图形界面1、打开终端(快捷键Ctrl+Alt+t)2、卸载gnome-shell主程序sudoapt-getremovegnome-shell3、卸载掉gnomesudoapt-getremovegnome4、卸载不需要的依赖关系sudoapt-getautoremove5、彻底卸载删除gnome的相关配置文件sudoapt-getpu…

    2022年5月30日
    44
  • django自定义用户认证_为什么需要自定义类加载器

    django自定义用户认证_为什么需要自定义类加载器前言如果我们不用使用drf那套认证规则,我们想自定义认证类,那么我们首先要知道,drf本身是如何定义认证规则的,也就是要查看它的源码是如何写的源码分析源码的入口在APIView.py文件下的di

    2022年8月7日
    3
  • CAS 认证原理[通俗易懂]

    CAS 认证原理[通俗易懂]一CAS原理简介CAS官方网站上的介绍图:主要原理:用户第一次访问一个CAS服务的客户web应用时(访问URL:http://192.168.7.90:8081/web1),部署在客户web应用的casAuthenticationFilter,会截获此请求,生成s…

    2022年6月24日
    65
  • 详解Java中的Spring框架

    详解Java中的Spring框架详解Spring什么是SpringSpring的优点Bean容器Bean的注解Bean属性Bean作用域Bean的生命周期Bean的实例化IoC(InversionofControl)和DI(DedendencyInjection)IoC(控制反转)DI(依赖注入)AOP什么是SpringSpring是分层的JavaSE/EEfull-stack轻量级开源框架,以IoC(InverseofControl,控制反转)和AOP(AspectOrientedProgramming

    2022年7月7日
    16
  • PLD,CPLD,FPGA区别[通俗易懂]

    PLD,CPLD,FPGA区别[通俗易懂]入门以后可以学习Xilinx的ISE,Altera的QuartusII学习CPLD初学者,建议选用LATTICE,这家公司在此方面有优势主流还是Altera和Xilinx,毕竟是最大的两家PLD公司(Cyclone   Spartan) PLD,CPLD,FPGA有何不同?不同厂家的叫法不尽相同,  PLD(ProgrammableLogicDevice)是可编程逻辑器件的总称

    2022年5月4日
    93
  • 数据库基础(常用SQL语句)[通俗易懂]

    数据库基础(常用SQL语句)[通俗易懂]一、数据库级及SQL语言简介1、目前主流数据库微软:sqlserver、access瑞典:mysqlibm:db2sybase:sybaseibm:informixoracle:oracle2、SQL语言DQL————-数据查询语言select…From…WhereDML————-数据操纵语言insert、upda…

    2022年5月6日
    43

发表回复

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

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