c++中stringstream的str(““)以及clear()的用法

本文介绍了C++中stringstream的基础用法,通过示例展示了如何利用stringstream进行不同类型的数据转换,如从字符串读取整数、浮点数和布尔值,并探讨了clear()和str()在转换过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初学c++的小白,记录学习历程,若有错误还请指正。

stringstream为类型转换工具,使用string对象代替其他数据类型。需要注意str("")和clear()的用法。

#include<iostream> 
#include<sstream>

using namespace std;

int main(){

    stringstream ss;
    int inta, intb;
    double douc;
    bool boold;

    ss<<"-23";
    ss>>inta;
    cout<<"inta is :"<<inta<<endl;
    cout<<"ss.str() is :"<<ss.str()<<endl;

    ss.clear();
    ss<<"456";
    ss>>intb;
    cout<<"intb is :"<<intb<<endl;
    cout<<"ss.str() is :"<<ss.str()<<endl;

    ss.clear();ss.str("");
    ss<<"3.1415";
    ss>>douc;
    cout<<"douc is :"<<douc<<endl;
    cout<<"ss.str() is :"<<ss.str()<<endl;

    //ss.clear();
    ss<<true;
    ss>>boold;
    cout<<"boold is :"<<boold<<endl;
    cout<<"ss.str() is :"<<ss.str()<<endl;

return 0;
    
}

输出结果为:

inta is :-23
ss.str() is :-23
intb is :456
ss.str() is :-23456
douc is :3.1415
ss.str() is :3.1415
boold is :0
ss.str() is :3.1415

使用clear()后:

inta is :-23
ss.str() is :-23
intb is :456
ss.str() is :-23456
douc is :3.1415
ss.str() is :3.1415
boold is :1
ss.str() is :3.14151

对比可知:clear()主要用于不同类型的转换;而str("")用于清空stringstream类中ss的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值