C++中 ostringstream istringstream

C++中 ostringstream istringstreamC++流都很类似,比如:输入输出流就是cincout从控制台读入写出。字符串流也类似,只是重定向到字符串。istringstream是从字符串读,ostringstream是写到字符串中去,用法跟cincout完全一样。C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstre…

大家好,又见面了,我是你们的朋友全栈君。

 

C++ 流都很类似, 比如:输入输出流 就是cin cout 从控制台读入写出。

字符串流也类似,只是重定向到字符串。istringstream 是从字符串读, ostringstream是写到字符串中去,用法跟cin cout完全一样。

C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstream>头文件。

istringstream类是从istream和stringstreambase派生而来,ostringstream是从ostream和 stringstreambase派生而来, stringstream则是从iostream类和stringstreambase派生而来。

  他们的继承关系如下图所示:

C++中 ostringstream istringstream

istringstream是由一个string对象构造而来,用istringstream类从一个string对象读取字符。 

#i nclude <iostream> 
#i nclude <sstream> 
using namespace std; 
int main()   
{ 
istringstream istr; 
istr.str("1 56.7"); 
    //上述两个过程可以简单写成 istringstream istr("1 56.7"); 
    cout << istr.str()<<endl; 
    int a; 
    float b; 
istr>>a;  //输入
    cout<<a<<endl; 
istr>>b; 
    cout<<b<<endl; 
}

输出

1 56.7

1

56.7

上例中,构造字符串流的时候,空格会成为字符串参数的内部分界,例子中对a,b对象的输入”赋值”操作证明了这一点,字符串的空格成为了整型数据与浮点型数据的分解点,str()成员函数的使用可以让istringstream对象返回一个string字符串。

 

ostringstream类向一个string插入字符。

#include <iostream> 
#include <sstream> 
#include <string> 
using namespace std; 
int main()   
{ 
    ostringstream ostr; 
    //ostr.str("abc");//如果构造的时候设置了字符串参数,那么增长操作的时候不会从结尾开始增加,而是修改原有数据,超出的部分增长 
    ostr.put('d'); 
    ostr.put('e'); 
    ostr<<"fg"; 
    string gstr = ostr.str(); 
    cout<<gstr; 
}

 输出:defg

在上例代码中,我们通过put()或者左移操作符可以不断向ostr插入单个字符或者是字符串,通过str()函数返回增长过后的完整字符串数据。

 

对于stringstream是用于C++风格的字符串的输入输出的,不多说。

 

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159726.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Log4net中ConversionPattern的代码解释[通俗易懂]

    Log4net中ConversionPattern的代码解释[通俗易懂]      layout type=”log4net.Layout.PatternLayout”>        param name=”Header” value=”———————–header————————–” />        param name=”Footer” value=”——————–

    2022年8月22日
    10
  • 如何一键远程开机,远程唤醒功能[通俗易懂]

    如何一键远程开机,远程唤醒功能[通俗易懂]使用ToDesk可以在千里之外为您的设备远程进行开机操作视频教程:https://update.todesk.com/wol.mp4ToDesk支持将关机状态下的设备(Windows,macOS,Linux)唤醒开机.这需要满足2个条件:1.开启电脑的网卡WakeOnLAN功能2.您要开机的电脑设备在同一交换机(路由器下),需要有另外一个ToDesk端在运行.比如其他的电脑或手机,iPad,Android电视盒子,或家人的手机安装一个ToDesk,这样您就可以在千里之外为您的电脑

    2022年6月2日
    77
  • BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第15章节–开发SP2013工作流应用程序 总结

    BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第15章节–开发SP2013工作流应用程序 总结

    2021年12月15日
    63
  • linux查看nfs端口命令,LinuxNFS端口命令是什么? 爱问知识人

    linux查看nfs端口命令,LinuxNFS端口命令是什么? 爱问知识人在Linux系统中,我们也会常遇到NFS的设置。针对这方面,我们这次主要讲解一下LinuxNFS的端口配置。看看如何设置可以调节好防火墙和端口的设置。#LinuxNFS服务固定端口及防火墙配置#1。在LINUX上正常安装NFS服务2。修改/etc/service,添加以下内容(端口号必须在1024以下,且未被占用)#Localservicesmountd1011/tcp#rpc。mount…

    2022年6月27日
    48
  • spss聚类分析步骤详细解读_spss聚类分析实验报告

    spss聚类分析步骤详细解读_spss聚类分析实验报告目录快速聚类系统聚类分析二阶聚类分析快速聚类【分析】【分类】【k-均值聚类】,将变量移至变量框中,员工id移至【个案标注依据】框中【聚类数】是期望分成几组【保存】勾选【聚类成员】复选框结果解读:随机选择三个数据作为快速聚类的初始位置显示迭代次数,迭代过程可以理解为每个类别与初始位置之间的距离改变情况,当这个距离变动非常小,迭代就完成了…

    2022年10月9日
    0
  • mysql 各个版本的驱动 jar 包

    mysql 各个版本的驱动 jar 包http://central.maven.org/maven2/mysql/mysql-connector-java/

    2022年5月21日
    40

发表回复

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

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